Java小案例——使用雙重for循環實現楊輝三角的輸出


楊輝三角特色分析(如圖):數組

  *第i行有i列ui

  *每一行的第一個數都爲1spa

  *每一行的最後一個數都爲1code

  *當前數(非第一列和最後一列)等於上面一個數+上面一個數的左邊的數blog


實現代碼:io

/**
 * 要求:輸出楊輝三角
 * @author Administration
 *
 */
public class YangHuiTest {

    public static void main(String[] args) {
        //建立二維數組,定義了行,沒有定義列
        int[][] arr = new int[10][];
        //動態爲列開闢空間(楊輝三角每行的列數和當前行號是相同的,如:第5行有5列)
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new int[i+1];
        }
        //賦值操做
        for (int i = 0; i < arr.length; i++) {
            arr[i][0] = 1;//第i行第1列,即每行的第一列都是1
            arr[i][i] = 1;//第i行的第i列,即每行的最後一個數都是1
            //接下來是楊輝三角的核心部分
            for(int j=1;j<i;j++){//注意這裏的j須要從1開始算起,由於每一行的第一個數咱們已經給賦值了
                //當前數值-->上一行該列的數+上一行該列的左邊的第一個數(看圖)
                arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
            }
        }
        //打印輸出
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+"\t");  //沒必要換行
            }
            System.out.println();  //換行
        }
    }
}

運行結果:class

1    
1    1    
1    2    1    
1    3    3    1    
1    4    6    4    1    
1    5    10    10    5    1    
1    6    15    20    15    6    1    
1    7    21    35    35    21    7    1    
1    8    28    56    70    56    28    8    1    
1    9    36    84    126    126    84    36    9    1    
相關文章
相關標籤/搜索