题目:输入一个数n,输出2n-1行的菱形
1. 可把中间行标记为0,向上依次记为-1、-2、……,向下依次记为1、2、……
2. 则每行输出的空格数就为abs(i),abs表示取绝对值
3. 分析可发现,每行星号的个数为(2n-1)-2 * abs(i)
综上,步骤依次为:
(1)初始化i为 -(n-1); //因为标记是从0到n-1
(2)输出abs(i)个空格;
(3)输出(2n-1)-2 * abs(i)个星号
(4)输出换行符;
(5)i++,依次重复以上步骤,直到i>(n-1),结束程序。
void coutrhombus (int n) {
for (int i = -(n - 1); i <= (n - 1); i++) {
for (int j = 0; j < abs(i); j++) {
cout << " ";
}
for (int j = 0; j < 2 * n - 1 - 2 * abs(i); j++) {
cout << "*";
}
cout << endl;
}
}