C++代码:
#include <bits/stdc++.h>
using namespace std;
void Christmas_Tree(int height)
{
int stars = 1;
for (int i = 0; i < height; i++)
{
for (int j = 0; j < height-i; j++)
{
cout << " ";
}
for(int j = 0; j < stars; j++)
{
cout << "*";
}
cout << endl;
stars += 2;
}
for (int i = 0; i < height/4; i++) //让高一点的圣诞树看起来正常一些
{
for (int j = 0; j < height; j++) //在正中间画树干
{
cout << " ";
}
cout << "|" << endl;
}
}
int main()
{
int n; //树叶的高度
cout << "请输入这棵圣诞树的高度:";
cin >> n;
Christmas_Tree(n);
return 0;
}
圣诞树效果图:
Life is short, use python! 调用turtle库
import turtle as t
screen = t.Screen()
screen.setup(800,700)
circle = t.Turtle()
circle.shape('circle')
circle.color('red')
circle.speed('fastest')
circle.up()
square = t.Turtle()
square.shape('square')
square.color('green')
square.speed('fastest')
square.up()
circle.goto(0,280)
circle.stamp()
k = 0
for i in range(1, 17):
y = 30*i
for j in range(i-k):
x = 30*j
square.goto(x,-y+280)
square.stamp()
square.goto(-x,-y+280)
square.stamp()
if i % 4 == 0:
x = 30*(j+1)
circle.color('red')
circle.goto(-x,-y+280)
circle.stamp()
circle.goto(x,-y+280)
circle.stamp()
k += 2
if i % 4 == 3:
x = 30*(j+1)
circle.color('yellow')
circle.goto(-x,-y+280)
circle.stamp()
circle.goto(x,-y+280)
circle.stamp()
square.color('brown')
for i in range(17,20):
y = 30*i
for j in range(3):
x = 30*j
square.goto(x,-y+280)
square.stamp()
square.goto(-x,-y+280)
square.stamp()
t.exitonclick()
圣诞树效果图:
高阶版本
from turtle import *
import random
import time
n = 80.0
speed("fastest")
screensize(bg='seashell')
left(90)
forward(3*n)
color("orange", "yellow")
begin_fill()
left(126)
for i in range(5):
forward(n/5)
right(144)
forward(n/5)
left(72)
end_fill()
right(126)
color("dark green")
backward(n*4.8)
def tree(d, s):
if d <= 0: return
forward(s)
tree(d-1, s*.8)
right(120)
tree(d-3, s*.5)
right(120)
tree(d-3, s*.5)
right(120)
backward(s)
tree(15, n)
backward(n/2)
for i in range(200):
a = 200 - 400 * random.random()
b = 10 - 20 * random.random()
up()
forward(b)
left(90)
forward(a)
down()
if random.randint(0, 1) == 0:
color('tomato')
else:
color('wheat')
circle(2)
up()
backward(a)
right(90)
backward(b)
time.sleep(60)
入门版本
height = 5
stars = 1
for i in range(height):
print((' ' * (height - i)) + ('*' * stars))
stars += 2
print((' ' * height) + '|')
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。