题目描述
编写main函数及子函数yanghui(int n), 在main函数调用yanghui函数,实现输出指定行数的杨辉三角。
输入
输入一个正整数n
输出
输出n行的杨辉三角(每行中的两个数之间只用一个空格隔开)。
样例输入
7
样例输出
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1
提示
杨辉三角规律:
1. 第一列元素,对角线元素均为1;
2. 其他元素满足以下关系:a[i][j] = a[i-1][j] + a[i-1][j-1] ( 当前行列元素 等于 上一行同一列元素 加上 上一行前一列元素 )
参考答案:
#include <stdio.h>
int sanjiao(int x,int y) // x为行 y为列 递归调用x,y坐标
{
if (y==1||y==x) //每行第一个和最后一个元素都是1
{
return 1;
}
return sanjiao(x-1,y-1) + sanjiao(x-1,y); //否则为上一行y-1和y元素之和
}
void yanghui(int a) //输入行数得到杨辉三角形
{
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= i ; j++)
{
printf("%d ",sanjiao(i,j));
}
printf("\n");
}
}
int main()
{
int a;
scanf("%d",&a);
yanghui(a);
return 0;
}
Ps :函数不可以嵌套定义,但是可以嵌套调用 。