使用巢狀迴圈列印圖形
阿新 • • 發佈:2018-12-20
迴圈巢狀
迴圈裡面可以巢狀迴圈,今天我們就用雙層for迴圈列印圖形和做出楊輝三角。列印圖形時,把圖形看做行,列。外層迴圈來控制行,內層控制列。如果是有星星還有空格的型別。模板就是 外層 for(int i = 0;i<=行數;i++) 內層 for(int j = 0 ;j<=列數;j++) 列數 = 空格數 + 星星數 if(i<空格數){ 空格數 = 用行數變量表示出空格數 輸出空格; 星星數 = 也用行數變量表示出來 }else{ 輸出星星; } public class TestPrint{ public static void main(String[]args){ //等腰三角形 for(int i=1;i<=5;i++){ for(int j=0;j<=2*i-1+5-i;j++){ if(j<=5-i){ System.out.print(" "); } else{ System.out.print("*"); } } System.out.println(); } //平行四邊形 for(int i=1;i<=5;i++){ for(int j=0;j<=10-i;j++){ if(j<=5-i){ System.out.print(" "); } else{ System.out.print("*"); } } System.out.println(); } //九九乘法表 for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ if(j<=i) System.out.print(j+"*"+i+"="+j*i+"\t"); } System.out.println(); } } }
楊輝三角
仔細觀察楊輝三角,你會發現,楊輝三角的每一行的第一個數字和最後一個數字都是1.中間的數是頭上的數和頭上的前一個數相加的和。這樣我們就可以結合列印圖形和楊輝三角的規律打印出楊輝三角。把楊輝三角的數放在二維陣列中,只需要對二維陣列進行處理即可。二維陣列可以看做一維數組裡面放一個一維陣列。
import java.util.*; public class yangHui{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); System.out.println("請輸入row"); int row=sc.nextInt(); //初始化一個二維陣列 int [][] arr=new int[row][]; //分配記憶體並賦值 for(int i=0;i<row;i++){ //設定記憶體大小,二維陣列中的一維陣列分配記憶體 arr[i]=new int[i+1]; for(int j=0;j<arr[i].length;j++){ if(j==0||j==arr[i].length-1){//第一個數和最後一個數為1 arr[i][j]=1; }else{ arr[i][j]=arr[i-1][j]+arr[i-1][j-1]; } } } System.out.println("楊輝三角為"); //輸出arr for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ System.out.print(arr[i][j]+" "); } System.out.println(); } } }
總結
楊輝三角的每一列的數是每一行的行數加1,因為從0開始的。跟一維陣列動態分配記憶體,第一個一維陣列存放第二一位陣列的記憶體地址。這樣就可以輸出楊輝三角。