题目描述
万圣节刚过去没见天,转眼间就快要圣诞节了。雀氏呀,快乐的时间总是短暂的,zyz 学长每天沉浸在快乐的刷题当中时,总是抱怨时间就像开了三倍速一样。学长为了让时间流逝地慢一点,所以学长决定在圣诞节当天种一棵“圣诞树”来陪伴自己一起度过这段快乐的时光。但是学长还没有挑选出来,作为迷人的zyz学长忠实粉丝的你知道这个消息后,肯定不会错过这个机会来表达自己对学长的崇拜与迷恋。所以你决定设计一棵“圣诞树”,来送给学长,以表自对zyz学长的崇拜与迷恋。下面是你设计好的“圣诞树”。
圣诞树分为五部分,从第一部分到第三部分,每部分的宽度分别为 r, r + d, r + 2 * d, 然后第四部分为树干,第五部分为土壤。然后给出“树干”的宽度和高度r1,h1和土壤”的宽度和高度r2,h2。(保证r1,r2都为奇数)。设计程序输出对应大小的圣诞树。
输入
第一行输入题目所描述的r和d,数据之间以空格相隔。
第二行输入r1,h1,r2和h2,数据之间以空格相隔。3<= r <= 11 && r为奇数 0<= d <= 10 && d为偶数
1 <= r1 <= 11 && r1为奇数 5 <= h1 <= 50
12 <= r2 <= 49 && r2为奇数 1 <= h2 <= 10
r1 < r2
输出
请打印上述“圣诞树”
样例输入
5 2 3 5 9 2
样例输出
* *** ***** * *** ***** ******* * *** ***** ******* ********* *** *** *** *** *** ********* *********
注意考虑到最长的是第三个三角的底边还是土壤的宽度就🆗了~
///树在中间版本
#include<bits/stdc++.h>
using namespace std;
int main()
{
int r,d;
int r1,h1,r2,h2;
while(cin>>r>>d)
{
cin>>r1>>h1>>r2>>h2;
int x3=r+2*d;//第三层的最长宽度
int x2=r+d;
int x1=r;
int g1=(x1+1)/2;
int g2=(x2+1)/2;
int g3=(x3+1)/2;
int maxr=max(x3,r2);//土壤宽还是最长的三角底边宽
for(int i=1;i<=g1;i++)//第一层
{
for(int j=(maxr-1)/2;j>=i;j--)
cout<<" ";
for(int k=1;k<=2*i-1;k++)
cout<<"*";
cout<<endl;
}
for(int i=1;i<=g2;i++)//第二层
{
for(int j=(maxr-1)/2;j>=i;j--)
cout<<" ";
for(int k=1;k<=2*i-1;k++)
cout<<"*";
cout<<endl;
}
for(int i=1;i<=g3;i++)//第三层
{
for(int j=(maxr-1)/2;j>=i;j--)
cout<<" ";
for(int k=1;k<=2*i-1;k++)
cout<<"*";
cout<<endl;
}
for(int i=1;i<=h1;i++)
{
for(int j=(maxr-r1)/2;j>0;j--)
cout<<" ";
for(int j=1;j<=r1;j++)
cout<<"*";
cout<<endl;
}
if(maxr==r2)//最长的是土壤的长度
{
for(int i=1;i<=h2;i++)
{
for(int j=1;j<=r2;j++)
{
cout<<"*";
}
if(i!=h2)
cout<<endl;
}
}
else///最长的是第三个三角的底边
{
/// cout<<"1"<<endl;
for(int i=1;i<=h2;i++)
{
for(int j=(maxr-r2)/2;j>0;j--)
cout<<" ";
for(int j=1;j<=r2;j++)
cout<<"*";
if(i!=h2)
cout<<endl;
}
}
}
return 0;
}