黑马程序员技术交流社区

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

作者: 几率收割    时间: 2015-6-24 22:21
标题: 打印出杨辉三角形
题目:打印出杨辉三角形(要求打印出

10

行如下图)



程序分析:



        1  

       1 1  

     1 2 1   

1 3 3 1  

1 4 6 4 1  

1 5 10 10 5 1  

作者: 徐文豪    时间: 2015-6-24 23:04
我给你说下思路吧   
用for循环   定义一个二维数组  每一行的第一列和最后一列都是1   从第三行开始   每一个数据就是它上一行的前一列和本列之和

例:

   
作者: 徐文豪    时间: 2015-6-24 23:09
例  :
   1
   1 1
   1  2  1
   1  3  3  1
2 就等于2上面的那个红色的1和前面的蓝色的1的和  同样 橘红色的3  就等于它上面的2  和2前面的1的和。。。。。。。。。。

作者: 龙哥Longer    时间: 2015-6-24 23:31
思路清晰了之后搞清楚你要的arr[ ]到底是什么,怎么去实现,之后就会比较清晰了
作者: Deathfish    时间: 2015-6-24 23:50
  1. /*
  2. print out pascal's triangle


  3. */
  4. public class Case33
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 pasTriPri(11);
  9.         }
  10.         public static void pasTriPri(int a)
  11.         {
  12.                 for(int i = 0; i<a;i++)
  13.                 {
  14.                         for(int j = a; j>i;j--)
  15.                         {
  16.                                 System.out.print("   ");
  17.                         }
  18.                         for(int k = 0; k<=i;k++)
  19.                         {
  20.                                 int b = pasTri( i+1, k+1);
  21.                                 if(b<10)
  22.                                         System.out.print(b+"     ");
  23.                                 else if(b<100&&b>=10)
  24.                                         System.out.print(b+"    ");
  25.                                 else
  26.                                         System.out.print(b+"   ");
  27.                         }
  28.                         System.out.println("");

  29.                 }
  30.        
  31.         }
  32.         public static int pasTri(int i, int j)
  33.         {
  34.                 if(j==0||j>i)
  35.                         return 0;

  36.                 if(j==1||j==i)
  37.                         return 1;
  38.                 return pasTri(i-1,j-1)+pasTri(i-1,j);
  39.        
  40.         }

  41. }
复制代码

作者: wx_J25HxI5W    时间: 2015-6-25 00:17
哥们,受教了。
作者: zlpiano    时间: 2015-6-25 00:25
还有个思路,先做个函数,用来求m为底,n的组合,然后把行数和列数传入,剩下的就是循环了




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