Name:
Anonymous
2008-12-24 22:21
(define (christmasTree h)
(define (foo k)
(if (< k 1)
"" (string-append " " (foo (- k 1)))))
(define (bar k)
(if (< k 1)
"\n" (string-append "*" (bar (- k 1)))))
(define (ct i)
(if (= i (+ h 1))
(string-append
(foo (- h 1))
(bar 1))
(string-append
(foo (- h i))
(bar (- (* 2 i) 1))
(ct (+ i 1)))))
(display (ct 1)))
#;1> (christmasTree 10)
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*
Name:
Anonymous
2008-12-24 23:55
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *christmas_tree(int n){
char *ret = calloc(1, n * 15 + n / 2 + 1);
char *cur = ret;
for(int i = 0; i < n; ++i){
memset(cur, ' ', n - i - 1);
cur += n - i - 1;
memset(cur, '*', i * 2 + 1);
cur += i * 2 + 1;
*(cur++) = '\n';
}
memset(cur, ' ', n - 1);
cur += n - 1;
*cur = '*';
return ret;
}
int main(void){
puts(christmas_tree(10));
return 0;
}