杨辉三角倒推算法代码C语言
时间: 2024-09-26 07:00:23 浏览: 39
C++杨辉三角形算法代码
杨辉三角(Pascal's Triangle)是一个经典的数学问题,它的每一行都是由前一行的数字相加得到的,通常用于组合数学中的二项式系数计算。倒推算法是指从最后一行开始,根据给定的值来推算出上一行的数字。
以下是一个简单的C语言代码,实现了杨辉三角的倒推算法:
```c
#include <stdio.h>
// 倒推函数,传入当前行和列的值,返回上一行对应位置的值
int pascal_triangle(int row, int col) {
if (col == 0 || col == row) {
// 边界条件,第一行或最后一列的数为1
return 1;
} else {
// 根据公式 C(n, k) = C(n-1, k-1) + C(n-1, k)
return pascal_triangle(row - 1, col - 1) + pascal_triangle(row - 1, col);
}
}
void print_pascal_triangle(int n) {
for (int i = 0; i <= n; ++i) {
for (int j = 0; j <= i; ++j) {
printf("%d ", pascal_triangle(i, j));
}
printf("\n");
}
}
int main() {
int rows;
printf("Enter the number of rows to display: ");
scanf("%d", &rows);
print_pascal_triangle(rows);
return 0;
}
```
在这个代码中,`pascal_triangle`函数负责递归地计算每个位置的数值,而`print_pascal_triangle`函数则遍历每一行打印出来。用户可以在运行时指定要显示的行数。
如果你有任何关于这个代码的问题,例如某个部分的工作原理、如何优化性能等,请告诉我。
阅读全文