Frohe Weihnacht!
-
#include <string> #include <iostream> inline void oh_tannenbaum(unsigned n){ std::string part; for(unsigned i=0; i!=n*2; i += 2){ part = std::string(i + 1, '*'); std::cout << std::string((n*2 + 3)/2 - part.size()/2, ' ') << part << '\n'; part = std::string(i + 3, '*'); std::cout << std::string((n*2 + 3)/2 - part.size()/2, ' ') << part << '\n'; part = std::string(i + 5, '*'); std::cout << std::string((n*2 + 3)/2 - part.size()/2, ' ') << part << '\n'; } std::cout << std::string((n*2 + 3)/2 - 3/2, ' ') << "###" << '\n'; } int main(){ oh_tannenbaum(10); }
-
o(_,0,[]). o(O,O0,Oo):-O0>0,O01 is O0-1,o(O,O01,L),append(L,O,Oo). oo(O,O0):-length(O,N),o(" ",(25-N)//2,O1),append(O1,O,O0). oO(O,O0):-o(O,O0,Oo),oo(Oo,OO),atom_codes(O0o,OO),write(O0o),nl. o0(O):-O0 is 2*O-1,oO("*",O0),oO("*",O0+2),oO("*",O0+4). o0o(0):-!. o0o(O):-O>0,Oo is O-1,o0o(Oo),o0(O). oO0:-o0o(10),oO("#",3).
gprolog --consult-file ... --entry-goal oO0