C语言 输出N行杨辉三角形

我们可以先在草稿纸上写出杨辉三角形。

1

1    1

1    2    1

1    3    3    1

1    4    6    4    1

............................

 这样的形状我们可以看成这几点要素。

  1. 每一行的开头和结尾都是 1。
  2. 每一行从第二个数开始都是上一行的前一个数加上同列的一个数。
  • 总结上面两个要素,就是要在每一行的第一个数和最后一个数输出为 1
  • 还有就是每行第二个数就是等于正上方的数  加上 左上方的数(就是上一行的同一列的数加上前一列的数)。

  • 这里我用了递归的方法。
    #include<stdio.h>
    int main()
    {	long yanghui(int row,int column);//声明函数
    	int n;
    	scanf("%d",&n);//这里输入多少行。
    	int i,j;
    	for(i=1;i<=n;i++)
    	{
    		for(j=1;j<=i;j++)
    		{
    			printf("%5d",yanghui(i,j));//调用我们定义的函数
    		}
    		printf("\n");
    	}
    	return 0;
     } 
    //这里先定义函数,row 与 column 代表的行 与 列。
     long yanghui(int row,int column)
     {
    // 文中两个要素就在这句话体现了。
     	return (column==1 || column==row)?1:yanghui(row-1,column)+yanghui(row-1,column-1);
     }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值