黑马程序员技术交流社区

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

作者: 米阳SOHO    时间: 2015-12-2 23:39
标题: 打印杨辉三角形
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;
        }
}
还有其他什么更方便的方法吗?求解
作者: anuo    时间: 2015-12-3 09:23
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();                 }         }  }
作者: Kalsifa    时间: 2015-12-3 10:16
不错,学习下
作者: 再续啸傲    时间: 2015-12-3 21:52
不错!!!




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