Write a function that prints an n
big tree, e.g. for n=5:
*
* *
* * *
* * * *
* * * * *
| |
Here is what I came up with in C:
N,i;a(n){for(i=N=N?N:n+2;i--;printf(i?"* "+(N-n-1<i):--n?"\n":"\n%*s",N,"| |"));n&&a(n);}
// the invocation isn't part of the golf:
main(){a(5);}
PS: Code blocks currently wrap around when they are too long, I’ve already submitted a patch to make them scroll horizontally instead.
Just discovered this community existed, I’ve got to make a post in my usual golfing lang:
Zsh, 70 bytes
Try it online!
The key constructs here are
(l.ARITHMETIC EXPRESSION.)
, which left-pads, and$^l
, which expands the array like a cross product.a=(a b c); echo x$a
printsxa b c
, butecho x$^a
printsxa xb xc
.Interestingly,
print -l
was shorter than<<<
by one byte.