数字金字塔
一、题目
二、题解
思路:规律题
2.1. 解法一
void pyramid(int n) {
for (int i = 1; i <= n; i++) {//n行
for (int j = 1; j <= n - i; j++)//n-i行个前置空格
printf(" ");
for (int k = 1; k <= 2 * i ; k++) {//空格之后的状态
if (k % 2 == 1)//数字的位置
printf("%d", i);
else
printf(" ");
}
printf("\n");
}
}
2.2. 解法二
出发点:合并解法一的两个循环
void pyramid(int n) {
for (int i = 1; i <= n; i++) {//n行
for (int k = 1; k <= n + i; k++) {
if (k > n - i && (k - n + i) % 2 == 1)//判断为数字可能的位置&&确定数字的最后位置
printf("%d", i);
else
printf(" ");
}
printf("\n");
}
}