杨辉三角形

在屏幕上显示杨辉三角形

            1
          1 1
        1 2 1
       1 3 3 1
      1 4 6 4 1
   1 5 10 10 5 1
………………………………..

【问题分析与算法设计】
     杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。从杨辉三角形的特点出发,可以总结出:
         1)N行有N+1个值(设起始行为第0)
         2)对于第N行的第J个值:(N>=2)
            当J=1J=N+1时: 其值为1
            当J!=1J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值之和
    将这些特点提炼成数学公式可表示为:
          1)x=1或x=N+1
          2)c(x,y)= c(x-1,y-1)+c(x-1,y)  这样便可以根据递归数学表达式来进行程序编写了。

【程序说明与注释】

  1: #include <stdio.h>
  2: #define WIDTH  4
  3: 
  4: int c(int,int);
  5: 
  6: int main(void)
  7: {
  8:     int i,j,n=13;
  9:     printf("N=");
 10:     
 11:     /*控制输入正确的值以保证屏幕显示的图形正确*/
 12:     while(n>12) scanf("%d",&n); 
 13: 
 14:     /*控制输出N行*/
 15:     for(i=0;i<=n;++i)
 16:     {
 17:         //every line
 18:         for(j=0;j<(12-i)/2*WIDTH;j++)
 19:             printf(" "); /*控制输出第i行前面的空格*/
 20:         for(j=1;j<i+2;j++)
 21:             printf("%4d",c(i,j)); /*输出第i行的第j个值*/
 22:         printf("/n");
 23:     }
 24:     system("PAUSE");    
 25:     return 0;
 26: 
 27: }
 28: 
 29: int c(int x, int y)
 30: {
 31:     int z;
 32:     if((y==1)||(y==x+1))
 33:         return 1;
 34:     z=c(x-1,y-1)+c(x-1,y);
 35:     return z;
 36: }
 37: 
 38: 
输出结果
                           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   7  21  35  35  21   7   1
           1   8  28  56  70  56  28   8   1
       1   9  36  84 126 126  84  36   9   1
       1  10  45 120 210 252 210 120  45  10   1
   1  11  55 165 330 462 462 330 165  55  11   1
   1  12  66 220 495 792 924 792 495 220  66  12   1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值