题解 | #圣诞树#
圣诞树
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; } }