输入格式:
输入一个正整数n
输出格式:
输出n行的直角三角形的杨辉三角,两个数之间用空格分隔,末尾无多余的空格。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
1
1 1
1 2 1
要输出杨辉三角形,先要了解杨辉三角形的性质下面是图片
从第三行开始 我们不妨把三角中的数定做is(x,y),x是行数,y是列数,列如is(5,3)值的数是6
规律是下面某一个数等于上两数之和如4=1+3;6=3+3;15=5+10;因此我们很容易想到可以利用递归函数
定义一个函数is(int,int)作用是返回在指定位置的三角数
主函数则用两层for循环把三角数依次输出即可
主要关系 is(m,n)=is(m-1,n-1)+is(m-1,n)
代码如下
#include
int is(int,int);//输出数字
int main()
{
int m,n;
scanf("%d",&m);
for(int z=1;z<=m;z++)//分别输出行数和列数
{
for (n=1;n<=z;n++)
{
if(n<z)
printf("%d ",is(z,n));
else
printf("%d",is(z,n));
}
printf("\n");
}
}
int is(int m,int n)//
{
int s;
if(n==1||n==m||m==1)//当三角的前两行和在三角直角边和斜角边都输出1
s=1;
else
{
s=is(m-1,n-1)+is(m-1,n);//这是递归函数
}
return s;
}