Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Sandbox

Comments on Fibonascii Squares [FINALIZED]

Post

Fibonascii Squares [FINALIZED]

+2
−0

Finalized: Fibonascii Squares


The Challenge

Your job is to, given input positive non-zero integer $n$, output an ASCII representation of the tiled Fibonacci squares up to the $n$th number of the Fibonacci sequence.

Rules

Input:

  • Input will be an integer $n$ such that $n \gt 0$.

Output:

  • Output will be an ASCII representation of the tiled Fibonacci squares, up until the $n$th Fibonacci number.

  • For Fibonacci number $x$, its respective square will be $x$ characters tall and $x$ characters wide.

  • Squares must be tiled so as to match the arrangement shown in the examples below. However, the output may be mirrored or rotated by multiples of $90^\circ$ as desired.

  • This challenge does include $0$ as a member of the Fibonacci sequence, so bear that in mind.

  • For cases where $n$ is $1$ (and hence there aren't any squares to create), you may either output any number of whitespace characters or output nothing at all.

  • Each square in the output must be represented by a grid made up of a unique ASCII character. For the characters forming your squares, you may use either the alphabet (either uppercase or lowercase, starting at a) or the digits 0-9 (starting at 0). You may reuse characters once you reach the end of the character sequence. You must use at least five unique characters.

  • This is a code-golf challenge, so the code with the fewest bytes wins!

Examples

Here is an image of the proper way to tile Fibonacci squares:

Fibonacci square arrangement.

Image source: Wikipedia

Example 1

Input:
5
Output:
DDDCC
DDDCC
DDDAB
EEEEE
EEEEE
EEEEE
EEEEE
EEEEE

Explanation: The input is $5$, representing the first $5$ numbers of the Fibonacci sequence, which are $0$, $1$, $1$, $2$, $3$, and $5$. The first and second squares are $1 \times 1$ characters in size, and are represented by A and B, respectively. The third square is $2 \times 2$ characters in size, and is represented by C, and so on until we reach the fifth square.

Example 2

Input:
1
Output:

Explanation: The input is $1$, representing the first number of the Fibonacci sequence, which is $0$. Thus, nothing is outputted. Alternatively, any number of whitespace characters could be outputted.

Example 3

Input:
3
Output:
AB

Explanation: The input is $3$, representing the first $3$ numbers of the Fibonacci sequence, which are $0$, $1$, and $1$. Thus, we have two squares, each $1 \times 1$ characters in size. The first square is represented by A, the second by B.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

4 comment threads

Plain text code formating (3 comments)
Test cases (2 comments)
Orientation (2 comments)
Character ranges (3 comments)
Plain text code formating
trichoplax‭ wrote 5 months ago · edited 5 months ago

Great challenge. I particularly like the title.

The only other thing I can think to point out is the syntax highlighting on the code blocks. Currently the automatic highlighting is treating the code blocks as a language where Input: and Output: are coloured red. You might want to keep that as is, but for reference in case you ever want to override the syntax highlighting:

The language can be specified immediately after the opening backticks. If you specify a language that is not recognised, it will suppress syntax highlighting. When I want to display plain text with no syntax highlighting (such as test cases) I usually use text as the language, like this:

```text
Input:
3
Output:
AB
```

This renders as:

Input:
3
Output:
AB
Sylvester‭ wrote 5 months ago

Thanks! Yes, I'm always happy when I can sneak in a little pun :)

Yeah, I do know about the syntax highlighting. I noticed it was highlighting the text but it didn't particularly bother me. You can change it so that there's no highlighting if you like, I'm good with it either way. Thanks for all your input! It's good to have feedback when developing a challenge :D

trichoplax‭ wrote 5 months ago

Thanks for using the sandbox - it's good to have challenges fine tuned before answers arrive.