请使用C语言中递归的方法求解杨辉三角,杨辉三角的行数介于1–10之间
时间: 2024-03-08 20:50:56 浏览: 68
好的,以下是使用 C 语言中递归的方法求解杨辉三角的代码:
```c
#include <stdio.h>
int triangle(int row, int col) {
if (col == 0 || col == row) { // 第一列和最后一列都是1
return 1;
} else { // 其他位置的数是上一行相邻两个数之和
return triangle(row-1, col-1) + triangle(row-1, col);
}
}
int main() {
int n;
printf("请输入杨辉三角的行数(1-10):");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", triangle(i, j));
}
printf("\n");
}
return 0;
}
```
运行效果如下:
```
请输入杨辉三角的行数(1-10):6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
希望我的回答能够帮助到您!
相关问题
c语言递归函数求杨辉三角
下面是用C语言递归函数求杨辉三角的代码:
```c
#include <stdio.h>
int YangHui(int i, int j) {
if (j == 0 || j == i) {
return 1;
} else {
return YangHui(i-1, j-1) + YangHui(i-1, j);
}
}
int main() {
int n;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", YangHui(i, j));
}
printf("\n");
}
return 0;
}
```
首先,我们定义了一个名为`YangHui`的递归函数,它的参数`i`表示杨辉三角的行数,参数`j`表示杨辉三角中当前行的位置,函数返回当前位置的值。
在函数内部,我们首先判断当前位置是否在杨辉三角的边缘,如果是,就返回1,否则就递归计算上一行的相邻两个位置的值之和。
在`main`函数中,我们输入杨辉三角的行数,并使用嵌套的循环打印出整个杨辉三角。
c语言:用递归法设计杨辉三角的完整算法程序
杨辉三角是一种二项式系数的几何排列,常用于组合数学中。以下是使用C语言递归方法来生成杨辉三角的一个简单示例:
```c
#include <stdio.h>
// 递归函数生成杨辉三角的第n行
void printPascalTriangle(int n) {
if (n == 0 || n == 1) {
// 基本情况:第一行只有一个1,第二行有两个1
for (int i = 0; i <= n; i++) {
printf("%d ", i + 1);
}
printf("\n");
} else {
// 一般情况:打印当前行的第一个数
printf("%d ", n);
// 递归打印前一行,然后加当前行的第二个数
printPascalTriangle(n - 1);
// 打印剩余的数(等于前一行的数)
if (n > 1) {
printf(" ");
printPascalTriangle(n - 1);
}
// 每行结束添加换行符
printf("\n");
}
}
int main() {
int rows;
printf("请输入杨辉三角的行数: ");
scanf("%d", &rows);
printf("杨辉三角:\n");
printPascalTriangle(rows);
return 0;
}
```
这个程序首先检查是否为基础情况(n=0或1),然后分别处理一般情况和递归调用。用户可以输入想要的行数,程序会输出对应的杨辉三角。
阅读全文