c语言给出一个正整数n输出如下所示的n阶杨辉三角
时间: 2024-11-09 16:30:05 浏览: 50
在C语言中,我们可以使用递归或动态规划的方式生成杨辉三角。下面是一个使用递归实现的例子,它会打印出给定正整数`n`对应的杨辉三角形:
```c
#include <stdio.h>
void printPascalTriangle(int n) {
if (n <= 0) {
return;
}
// 打印前两行
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", comb(i, j));
}
printf("\n");
}
}
// 计算组合数 C(n, k)
int comb(int n, int k) {
if (k == 0 || k == n) {
return 1;
} else {
return comb(n - 1, k - 1) + comb(n - 1, k);
}
}
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
printPascalTriangle(n);
return 0;
}
```
这个程序首先检查输入的`n`是否为正整数,然后打印出前两行(对于`n=0`和`n=1`)。接下来,它使用`comb`函数计算每个位置的数值,这个函数实现了组合公式`C(n, k) = C(n-1, k-1) + C(n-1, k)`。
阅读全文