这种问题是很有规律的 这里 总结一下 这类问题输出:对称 且数据相同的很多 就比如首位都是1
如果计算中间值遇到困难 可以试着把边界值单独输出
一维数组
//
// Created by 徐昌真 on 2024/11/11.
//
#include <stdio.h>
//一维数组
int main() {int n; // 代表n个数int cnt = 1;scanf("%d", &n);int count[100] = {0}; // 使用一维数组count[1] = 1;printf("%d\n", count[1]);while(--n){++cnt;for (int i = cnt; i > 0; --i) { //逆向进行 避免覆盖数据count[i] = count[i] + count[i - 1];printf("%d ", count[i]);}printf("\n");}return 0;
}
二维数组
//
// Created by 徐昌真 on 2024/11/11.
//
#include <stdio.h>
//二维数组
int main() {int n; //代表n个数int cnt = 1;scanf("%d",&n);int count[100][100] = {0}; //初始化count[0][0] = 1;printf("%d\n", count[0][0]);for (int j = 1; j < n; ++j) {++cnt;for (int i = 0; i < cnt; ++i) {count[j][i] = (i == 0 || i == cnt - 1) ? 1 : count[j - 1][i - 1] + count[j - 1][i]; //特殊处理边界元素printf("%d ",count[j][i]);}printf("\n");}return 0;
}