递归函数--杨辉三角
时间: 2024-06-07 19:04:11 浏览: 18
递归函数是一种在函数定义中调用自身的编程技术,通常用于解决可以通过自我分解为相同或相似子问题来解决的问题。杨辉三角,又称帕斯卡三角或杨表,是一个数学上的数阵,每一行代表一个组合数列,列数和行数从0开始,每个数字是其上方两个数字之和。例如,第一行是1,第二行是1、1,第三行是1、2、1,以此类推。
递归函数在展示杨辉三角中非常直观,因为它可以通过简单的规则生成每一行的数字。对于递归函数来说,我们可以这样定义:
```python
def pascal_triangle(n, row=):
if n == 0:
return []
else:
result = [row]
if n > 1:
result += [row[-1] + row[-2]] + pascal_triangle(n-1, row[1:])
return result
# 输出前几行的杨辉三角
for i in range(5):
print(pascal_triangle(i))
```
相关问题
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>
// 递归函数
int func(int m, int n) {
if (n == 0 || n == m) // 递归终止条件
return 1;
return func(m - 1, n) + func(m - 1, n - 1); // 核心代码
}
int main(void) {
int m, i, j;
m = 6; // 打印前6行杨辉三角
for (i = 0; i <= m; i++) {
for (j = 0; j < m - i; j++)
printf(" ");
for (j = 0; j <= i; j++)
printf("%6d", func(i, j));
printf("\n");
}
return 0;
}
```
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)