题解 | #超级圣诞树#

超级圣诞树

https://www.nowcoder.com/practice/470d26c9a73e4e17be8cc45cac843423

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int n;
    while (cin >> n) { 
        int i=0,j=0,k=0;
        int x=3*pow(2,(n-1));
        int h=x+n,w=2*x-1; //图形的高度与宽度。
        int c=x-1;//中心列的下标;
        char p[h][w];//定义画布;
        for(i=0;i<h;i++)//初始化画布;
        {
            for(j=0;j<w;j++) p[i][j]=' ';
        }
        for(i=x;i<h;i++) p[i][c]='*';//绘制树干
        for(i=0;i<3;i++)
        {
            p[i][c-i]='*';
            p[i][c+i]='*';
        }
        p[2][c]='*';//上面的部分绘制初始三角形在画布的最上方中间。
        for(i=1;i<n;i++)//开始递归
        {
            int t=3*pow(2,i-1);//上半部分的行数;
            for(j=0;j<t;j++)//开始绘制下半部分
            {
                for(k=c-j;k<=c+j;k++)
                {
                    p[t+j][k-t]=p[j][k];//复制到左下
                    p[t+j][k+t]=p[j][k];//复制到右下
                }
            }
        }
        for(i=0;i<h;i++)//打印图形
        {
            for(j=0;j<w;j++) cout<<p[i][j];
            cout<<endl;
        }
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 13:05
TMD找工作本来就烦,这东西什么素质啊😡
Beeee0927:hr是超雄了,不过也是有道理的
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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