C语言递归输出杨辉三角
时间: 2024-12-28 20:30:32 浏览: 0
杨辉三角是一个数字构成的金字塔形图案,在数学上常用于组合数计算,其中每个数字等于它上面两行相邻数字之和。在C语言中,我们可以使用递归来打印出杨辉三角。下面是一个简单的示例:
```c
#include <stdio.h>
// 递归函数,输入行号n,返回第n行的杨辉三角数组
int* printPascal(int n) {
int *row = (int*)malloc(sizeof(int) * (n + 1)); // 分配存储空间
row[0] = row[n] = 1; // 杨辉三角的第一行和最后一行都是1
for (int i = 1; i < n; i++) {
row[i] = row[i - 1] + row[i - 2]; // 计算当前位置的值
}
// 输出杨辉三角并回溯释放内存
for (int i = 0; i <= n; i++) {
printf("%d ", row[i]); // 打印每一行
free(row); // 每次循环结束后释放这一行的空间
row = NULL; // 为了下一次循环重新分配
}
return NULL;
}
int main() {
int n = 5; // 如果你想打印前5行,可以改变这个数值
printPascal(n);
return 0;
}
```
当你运行这个程序时,它会打印出前5行杨辉三角的数字。每次循环结束都会释放那一行的内存,这是递归实现的特点。
阅读全文