杨辉三角形c语言程序递归算法
时间: 2023-12-13 18:34:31 浏览: 45
以下是杨辉三角形的C语言递归算法:
```c
#include <stdio.h>
int YangHui(int r, int c) {
if (c == 1 || c == r) {
return 1;
} else {
return YangHui(r - 1, c - 1) + YangHui(r - 1, c);
}
}
int main() {
int n, i, j;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= i; j++) {
printf("%d ", YangHui(i, j));
}
printf("\n");
}
return 0;
}
```
相关问题
杨辉三角形c语言程序
以下是用C语言实现杨辉三角的程序:
```c
#include <stdio.h>
int main() {
int rows, coef = 1, space, i, j;
printf("请输入行数:");
scanf("%d", &rows);
for (i = 0; i < rows; i++) {
for (space = 1; space < rows - i; space++)
printf(" ");
for (j = 0; j <= i; j++) {
if (j == 0 || i == 0)
coef = 1;
else
coef = coef * (i - j + 1) / j;
printf("%4d", coef);
}
printf("\n");
}
return 0;
}
```
运行程序后,输入行数即可输出对应行数的杨辉三角形。程序中使用了两个for循环,第一个循环用于控制行数,第二个循环用于控制每一行的输出。在第二个循环中,使用了组合数的公式来计算每个数字的值。
杨辉三角形c语言程序思路
这个C语言程序的思路是使用二维数组来存储杨辉三角形的每个元素,然后使用两个for循环来计算每个元素的值。具体思路如下:
1.首先定义一个N*N的二维数组a,其中N表示杨辉三角形的行数。
2.然后使用两个for循环来初始化数组a,使得每一行的首位都是1。
3.接着使用另外一个for循环来计算每个元素的值,具体计算方法是:每个元素的值等于它上一行的左上角和右上角元素之和。
4.最后使用两个for循环来输出数组a中的每个元素,从而得到完整的杨辉三角形。
下面是这个程序的具体实现代码:
```c
#include <stdio.h>
#define N 7
int main() {
int i,j;
int a[N][N];
// 初始化数组a
for(i = 0; i < N; i++) {
a[i][i] = 1; // 每一行的末尾都是1
a[i][0] = 1; // 每一行的首位都是1
}
// 计算每个元素的值
for(i = 2; i < N; i++) {
for(j = 1; j <= i - 1; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
// 输出杨辉三角形
for(i = 0; i < N; i++) {
for(j = 0; j <= i; j++) {
printf("%6d", a[i][j]);
}
printf("\n");
}
return 0;
}
```