黑马程序员技术交流社区

标题: 杨辉三角 [打印本页]

作者: 许本亮    时间: 2015-11-4 19:17
标题: 杨辉三角
C语言学习的时候,看到一课后习题,输出杨辉三角,知道应该用循环能实现,不够逻辑好像有点复杂,有木有大神指点下~~~谢谢!

作者: 许庭洲    时间: 2015-11-5 15:33
//其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,
//它的特点是左右两边全是1,从第二行起,
//中间的每一个数是上一行里相邻两个数之和。
using System;
class Test
{
       public static void Main()
       {
              int[,] a = new int[5,5];
              a[0,0] = 1;
              for(int i=1;i<=5;i++)
              {
                      a[i,0] = 1;
                      a[i, i] = 1;
                      for(int j = 1;j<i;j++)
                      {
                              a[i,j]=a[i-1,j-1] + a[i-1,j];
                      }
               }
               for(int i=0;i<5;i++)
               {
                        for(int j=0;j<i;j++)
                       {
                              Console.WriteLine("{0}",a[i][j]);
                       }

                 Console.WriteLine();
               }
      }
}
*********************程序运行结果**********************
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
******************************************************

//还可以求整数阶乘为例,代码还可以这样写:
//for(long y=1;x>0;x--)
//   y*=x;
//同样,可以用break和continue语句,
//来和循环判断符合语句中的逻辑表达式来配合使用,
//达到控制循环的目的。



作者: 许本亮    时间: 2015-11-5 16:03
许庭洲 发表于 2015-11-5 15:33
//其实质是二项式(a+b)的n次方展开后各项的系数排成的三角形,
//它的特点是左右两边全是1,从第二行起,
/ ...

大神您好:Console.WriteLine("{0}",a[j]);这句没看懂,能不能给注释一下,谢谢
作者: 许庭洲    时间: 2015-11-5 16:08
本帖最后由 许庭洲 于 2015-11-5 16:13 编辑
许本亮 发表于 2015-11-5 16:03
大神您好:Console.WriteLine("{0}",a[j]);这句没看懂,能不能给注释一下,谢谢

按行输出每列数组中的元素




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2