定义杨辉三角函数,主函数调用该函数,输入任意数n,输出n行杨辉三角图形
时间: 2023-05-31 20:18:09 浏览: 327
杨辉三角:输入数字,输出杨辉三角
4星 · 用户满意度95%
### 回答1:
杨辉三角函数是一个用来生成杨辉三角的函数,它的定义如下:
def yanghui(n):
triangle = []
for i in range(n):
row = [1] * (i + 1)
for j in range(1, i):
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
triangle.append(row)
return triangle
主函数可以调用这个函数来生成任意行数的杨辉三角图形,例如:
n = 5
triangle = yanghui(n)
for row in triangle:
print(row)
输出结果如下:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
这就是一个5行的杨辉三角图形。
### 回答2:
杨辉三角是一种很有趣的数学图形,它是个三角形,其中每个数等于它正上方与左上方的两个数的和,同时第一行只有一个数字1,第二行有两个数字1,后面的每行数字个数都与行数相等,并且每行两侧的数字都为1。因此可以使用递归或者循环,编写一个函数来生成杨辉三角形。
定义杨辉三角函数:
1. 函数名:yang_triangle
2. 参数:n,表示需要输出多少行杨辉三角形
3. 返回值:无
函数体实现:
```python
def yang_triangle(n):
# 定义一个空列表存放数字
nums = []
# 遍历每一行
for i in range(n):
# 在每一行中,第一个数字和最后一个数字都是1,其他数字是上一行对应数字的和
row = [1]
for j in range(1, i):
row.append(nums[i-1][j-1] + nums[i-1][j])
if i > 0:
row.append(1)
nums.append(row)
# 输出杨辉三角形
for row in nums:
print(" ".join(str(x) for x in row).center(n*5))
```
主函数调用该函数,输入任意数n,输出n行杨辉三角图形:
```python
n = int(input("请输入杨辉三角的行数:"))
yang_triangle(n)
```
运行结果:
```
请输入杨辉三角的行数:6
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
```
通过这个函数,我们可以方便的输出任意行数的杨辉三角形。
### 回答3:
杨辉三角是一个由数字组成的三角形,数字是根据规则排列的,其中第一行只有一个数字1,接下来的每一行数字都是上一行数字左右两个数字之和。如下所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
......
现在要定义一个杨辉三角函数,主函数调用该函数,输入任意数n,输出n行杨辉三角图形。函数的具体定义如下:
函数名:yanghui
输入参数:代表输出杨辉三角的行数n
返回值:无
程序实现思路如下:首先定义一个二维数组,其行数为n,列数为n+1。由于每一行数字个数都比上一行多1个,因此列数要比行数多1。定义杨辉三角函数中第一个数、最后一个数为1,其他数根据杨辉三角规则依次计算。最后输出数组中的每一个数即可。具体实现代码如下:
```
#include <stdio.h>
void yanghui(int n)
{
int a[100][100];
int i, j;
for(i = 0; i < n; i++)
{
a[i][0] = 1;
a[i][i+1] = 1;
}
for(i = 2; i < n; i++)
for(j = 1; j <= i; 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("%d ", a[i][j]);
printf("\n");
}
}
int main()
{
int n;
printf("请输入杨辉三角的行数:");
scanf("%d", &n);
yanghui(n);
return 0;
}
```
运行结果如下:
```
请输入杨辉三角的行数:5
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
```
阅读全文