christmas tree
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-26 18:16
***
Name:
Anonymous
2008-12-26 18:16
*****
Name:
Anonymous
2008-12-26 18:16
*******
Name:
Anonymous
2008-12-26 18:16
*********
Name:
Anonymous
2008-12-26 18:16
***********
Name:
Anonymous
2008-12-26 18:17
*************
Name:
Anonymous
2008-12-26 18:17
***************
Name:
Anonymous
2008-12-26 18:17
*****************
Name:
Anonymous
2008-12-26 18:17
*******************
Name:
Anonymous
2008-12-26 18:17
*********************
Name:
Anonymous
2008-12-26 18:17
***********************
Name:
Anonymous
2008-12-26 18:18
*************************
Name:
Anonymous
2008-12-26 18:18
***************************
Name:
Anonymous
2008-12-26 18:18
*****************************
Name:
Anonymous
2008-12-26 18:18
*******************************
Name:
Anonymous
2008-12-26 18:18
*********************************
Name:
Anonymous
2008-12-26 18:18
***********************************
Name:
Anonymous
2008-12-26 18:19
*************************************
Name:
Anonymous
2008-12-26 18:19
***************************************
Name:
Anonymous
2008-12-26 18:19
*****************************************
Name:
Anonymous
2008-12-26 18:19
*******************************************
Name:
Anonymous
2008-12-26 18:19
*********************************************
Name:
Anonymous
2008-12-26 18:19
***********************************************
Name:
Anonymous
2008-12-26 18:20
*************************************************
Name:
Anonymous
2008-12-26 18:20
***************************************************
Name:
Anonymous
2008-12-26 18:20
*****************************************************
Name:
Anonymous
2008-12-26 18:20
*******************************************************
Name:
Anonymous
2008-12-26 18:20
*********************************************************
Name:
Anonymous
2008-12-26 18:20
***********************************************************
Name:
Anonymous
2008-12-26 18:21
*************************************************************
Name:
Anonymous
2008-12-26 18:21
***************************************************************
Name:
Anonymous
2008-12-26 18:21
*****************************************************************
Name:
Anonymous
2008-12-26 18:22
*******************************************************************
Name:
Anonymous
2008-12-26 18:23
LISP
Name:
Anonymous
2008-12-27 18:27
> let n = 10 in mapM_ (putStrLn . liftM2 (++) (flip replicate ' ' . (`div`2) . (n*2-)) (flip replicate '*')) $ filter odd [1..n*2] ++ [1]
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*
Name:
Anonymous
2008-12-27 18:44
>>75
Enjoy your O(h^2) runtime.
Name:
Anonymous
2008-12-27 19:16
>>2
Two functions and a conditional? Really?
>>> tree = lambda k: '\n'.join(('*' * n).center(2 * k) for n in range(1, 2 * k, 2) + [1])
Name:
Anonymous
2008-12-27 19:56
>>75
>>15 is still superior.
Name:
I CAN DO FUNCTIONAL TOO
2008-12-27 19:58
#include <iostream>
#include <string>
template < size_t n, size_t n1 >
struct _xmastree {
static const std::string val;
};
template < size_t n, size_t n1 >
const std::string _xmastree< n, n1 >::val =
_xmastree< n, n1 - 1 >::val +
std::string( "\n" ) +
std::string( n - n1, ' ' ) +
std::string( n1 * 2 + 1, '*' );
template < size_t n >
struct _xmastree< n, 0 > {
static const std::string val;
};
template < size_t n >
const std::string _xmastree< n, 0 >::val =
std::string( n, ' ' ) +
std::string( "*" );
template < size_t n >
struct xmastree {
static const std::string val;
};
template < size_t n >
const std::string xmastree< n >::val =
_xmastree< n, n >::val +
std::string( "\n" ) +
std::string( n, ' ' ) +
std::string( 1, '*' );
template <>
const std::string xmastree< 0 >::val = "\"GRUNNER\"";
int main( int argc, char *argv[] ) {
std::cout << xmastree<10>::val << std::endl;
return 0;
}
Name:
Anonymous
2008-12-27 20:24
Newer Posts