A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 几率收割 中级黑马   /  2015-6-24 22:21  /  292 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:打印出杨辉三角形(要求打印出

10

行如下图)



程序分析:



        1  

       1 1  

     1 2 1   

1 3 3 1  

1 4 6 4 1  

1 5 10 10 5 1  

6 个回复

倒序浏览
我给你说下思路吧   
用for循环   定义一个二维数组  每一行的第一列和最后一列都是1   从第三行开始   每一个数据就是它上一行的前一列和本列之和

例:

   
回复 使用道具 举报
例  :
   1
   1 1
   1  2  1
   1  3  3  1
2 就等于2上面的那个红色的1和前面的蓝色的1的和  同样 橘红色的3  就等于它上面的2  和2前面的1的和。。。。。。。。。。
回复 使用道具 举报
思路清晰了之后搞清楚你要的arr[ ]到底是什么,怎么去实现,之后就会比较清晰了
回复 使用道具 举报
  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. }
复制代码
回复 使用道具 举报
哥们,受教了。
回复 使用道具 举报
还有个思路,先做个函数,用来求m为底,n的组合,然后把行数和列数传入,剩下的就是循环了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马