题解 | #圣诞树#

圣诞树

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

#include <iostream>
using namespace std;
//图形分块打印
void showpart1() {
    cout << "  *   ";
}
void showpart2() {
    cout << " * *  " ;
}
void showpart3() {
    cout << "* * * " ;
}
int main() {
    int n, index;
    while (cin >> n) {
        for (int i = 0; i < 3 * n; i++) {			//按行进行打印
            index = i;
            for (int j = 0; j < 3 * (n - 1 - i / 3); j++) cout << ' ';		//对于每一行,可以计算出其															前面空格与圣诞树n之间的关系,先打印前面的空格
			//进行打印图形的判断,当行数的尾数为0,打印第一个图案,以此类推
            if (i % 3 == 0) {
                for (int k = 0; k < i / 3 + 1; k++)	//进行打印次数的判断,随着行数每增加3,打印的图案就多														一个
                    showpart1();
            }
            if (i % 3 == 1) {
                for (int k = 0; k < i / 3 + 1; k++) {
                    showpart2();
                }
            }
            if (i % 3 == 2) {
                for (int k = 0; k < i / 3 + 1; k++) {
                    showpart3();
                }
            }
            cout << endl;
        }
		//树柄
        for(int i = 0; i < n;i++)
        {
            for(int j = 0; j < 3*n-1;j++)
            {
                 cout <<' ';
            }
            cout << '*'<< endl;
        }
        return 0;
    }
}

全部评论

相关推荐

吃不饱的肱二头肌很想退休:tnnd 我以为选妹子呢,亏我兴高采烈的冲进来😠
投递快手等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务