题解 | #圣诞树#

圣诞树

https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2

#include <stdio.h>
#include<math.h>
int one(){printf("*     "); return 0;}/*小圣诞树第一行*/
int two(){printf("* *   "); return 0;}/*小圣诞树第二行*/
int three(){printf("* * * "); return 0;}/*小圣诞树第三行*/
int main() 
{
    int n;
    while(scanf("%d",&n)!=EOF)
    for(int i=1;i<=3*n;i++)/*树叶部分共打印3*n行*/
    {
     int p=3*n-i;
     while(p!=0){printf(" "); p--;} /*打印第一个*号前的空格*/
     double a=ceil((double)i/3);/*用向上取整函数确定小圣诞树循环次数*/
     int b=i%3;/*确定小圣诞树的行数*/
     for(int j=1;j<=a;j++)
     switch(b)/*根据行数打印对应字符*/
     {
        case 1:one();break;
        case 2:two();break;
        default:three();break;
     }
     printf("\n");
    }
    for(int i=1;i<=n;i++)/*打印树根部分*/
    {
     for(int j=1;j<=3*n-1;j++)
     printf(" ");
     printf("*\n");
    }
    return 0;
}

全部评论

相关推荐

迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务