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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 米阳SOHO 中级黑马   /  2015-12-2 23:39  /  870 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

/*
* 题目:打印出杨辉三角形(要求打印出10行如下图)
*                                             1
*                                         1        1
*                                 1    2          1
*                           1          3            3   1
* 思路:定义一个二维数组int[][] arr=new int[][];
* 从第三行开始,出去第一个和最后一个数字,每一个数字arr[i]等于上一行arr[i]+arr[i-1]之和
* arr[0]={1};
* arr[1]={1,1};
* arr[2]={1,arr[1][0]+arr[1][1],1};
* arr[3]={1,arr[2][0]+arr[1],arr[2][1]+arr[2][1],1}
*/
public class Test33 {
        public static void main(String[] args) {
                int line=10;
                for(int i=1;i<=line;i++){
                        for(int x=0;x<=array(i).length-1;x++){
                                System.out.print((array(i))[x]+"\t");
                        }
                        System.out.println("");
                }
        }
        public static int[] array(int n){
                int[] arr=new int[n];
                if(n==1){
                        arr[0]=1;
                }else if(n==2){
                        arr[0]=1;
                        arr[1]=1;
                }else {
                        arr[0]=1;
                        for(int i=1;i<n-1;i++){
                                arr[i]=(array(n-1))[i]+(array(n-1))[i-1];
                        }
                        arr[n-1]=1;
                }
                return arr;
        }
}
还有其他什么更方便的方法吗?求解

3 个回复

倒序浏览
package com.fengyun.day12.text;  public class FuXi {         public static void main(String[] args) {                 //杨辉三角的问题                 //先创建一个二维数组                 int[][] yanghui=new int[10][];                 //遍历这个二维数组                 for(int i=0;i<yanghui.length;i++){                         yanghui[i]=new int[i+1];                 }                 //给二维数组赋值,并输出                 for(int i=0;i<yanghui.length;i++){                         for(int j=0;j<yanghui[i].length;j++){                                 yanghui[i][0]=yanghui[i][i]=1;                                 if(i>1&&j>0&&j<i){                                         yanghui[i][j]=yanghui[i-1][j]+yanghui[i-1][j-1];                                 }                                 System.out.print(yanghui[i][j]+"\t");                         }                         System.out.println();                 }         }  }
回复 使用道具 举报
不错,学习下
回复 使用道具 举报
再续啸傲 来自手机 中级黑马 2015-12-3 21:52:21
板凳
不错!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马