题目描述
万圣节刚过去没见天,转眼间就快要圣诞节了。雀氏呀,快乐的时间总是短暂的,zyz 学长每天沉浸在快乐的刷题当中时,总是抱怨时间就像开了三倍速一样。学长为了让时间流逝地慢一点,所以学长决定在圣诞节当天种一棵“圣诞树”来陪伴自己一起度过这段快乐的时光。但是学长还没有挑选出来,作为迷人的zyz学长忠实粉丝的你知道这个消息后,肯定不会错过这个机会来表达自己对学长的崇拜与迷恋。所以你决定设计一棵“圣诞树”,来送给学长,以表自对zyz学长的崇拜与迷恋。下面是你设计好的“圣诞树”。
圣诞树分为五部分,从第一部分到第三部分,每部分的宽度分别为 r, r + d, r + 2 * d, 然后第四部分为树干,第五部分为土壤。然后给出“树干”的宽度和高度r1,h1和土壤”的宽度和高度r2,h2。(保证r1,r2都为奇数)。设计程序输出对应大小的圣诞树。
输入
第一行输入题目所描述的r和d,数据之间以空格相隔。
第二行输入r1,h1,r2和h2,数据之间以空格相隔。
第二行输入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
输出
请打印上述“圣诞树”
样例输入 Copy
3 5 9 2
样例输出 Copy
*
***
*****
*
***
*****
*******
*
***
*****
*******
*********
***
***
***
***
***
*********
*********
来源/分类
题目要分类讨论 刚开始没有发现 还是不够细啊 :(
#include<stdio.h>
void pr(int n)//定义*函数
{
int i;
for(i=1;i<=n;i++)
{
printf("*");
}
printf("\n");
}
void blank(int n)//定义空格函数
{
int i;
for(i=1;i<=n;i++)
{
printf(" ");
}
}
int main()
{
int r,d,r1,h1,r2,h2,i,n,x,j,k;
scanf("%d %d",&r,&d);
scanf("%d %d %d %d",&r1,&h1,&r2,&h2);
if(r2>=r+2*d)
{
n=r/2+1;
for(i=1;i<=3;i++)
{
x=1;
k=r2/2;
for(j=1;j<=n;j++)
{
blank(k);
pr(x);
x=x+2;
k--;
}
n=n+d/2;
}
k=r2/2;
x=r1/2;
for(i=0;i<h1;i++)
{
blank(k-x);
pr(r1);
}
x=r2/2;
for(i=1;i<=h2;i++)
{
blank(k-x);
pr(r2);
}
}
//分类讨论 !!
else if(r2<r+2*d)
{
n=r/2+1;
for(i=1;i<=3;i++)
{
x=1;
k=(r+2*d)/2;
for(j=1;j<=n;j++)
{
blank(k);
pr(x);
x=x+2;
k--;
}
n=n+d/2;
}
k=(r+2*d)/2;
x=r1/2;
for(i=0;i<h1;i++)
{
blank(k-x);
pr(r1);
}
x=r2/2;
for(i=1;i<=h2;i++)
{
blank(k-x);
pr(r2);
}
}
return 0;
}