當前位置:
首頁 > 知識 > 楊輝三角怎麼完成 一定要多多練習

楊輝三角怎麼完成 一定要多多練習

(1)確定程序框架

由前面的問題分析可知,先從鍵盤接收楊輝三角的高度,然後通過二維數組計算存儲楊輝三角,最後把楊輝三角列印出來。程序框架代碼如下:

public class Ch1_5

{

public static void main(String[] args)

{

Scanner scanner = new Scanner(System.in);

int num = scanner.nextInt(); //鍵盤接收行數

int[][] ary = getTriangle(num); //得到楊輝三角

print(ary); //列印楊輝三角

}

}

(2)得到楊輝三角

由前面的問題分析可知,用二維數組計算存儲楊輝三角,楊輝三角豎邊、斜邊都為1,可以先賦值,然後再給中間元素賦值,當前位置的值等於它的上方數和左上角上的數之和。程序代碼如下:

private static int[][] getTriangle(int num)

{

int[][] ary = new int[num][num]; //用二維數組存儲

for(int i = 0; i

{

ary[i][0] = 1;

ary[i][i] = 1;

}

for(int i = 1; i

{

for(int j = 1; j

{

//裡面部分,等於當前位置的上方和左上角之和

ary[i][j] = ary[i-1][j-1] + ary[i-1][j];

}

}

return ary;

}

(3)列印楊輝三角

楊輝三角保存在二維數組中,通過一個雙重循環就可以列印出來,但是要注意的是,不需要把所有元素都列印出來,內循環列的控制要小於等於當前行數。程序代碼如下:

private static void print(int[][] ary)

{

for(int i=0;i

{

for(int j=0;j

{

}

System.out.println(); //換行

}

}

(4)完整程序

現在我們就需要把剛才的程序進行組合,構成我們的完整程序:

import java.util.Scanner;

public class Ch1_5

{

public static void main(String[] args)

{

Scanner scanner = new Scanner(System.in);

int num = scanner.nextInt(); //從鍵盤接收行數

int[][] ary = getTriangle(num); //得到楊輝三角

print(ary); //列印楊輝三角

}

//得到楊輝三角

private static int[][] getTriangle(int num)

{

int[][] ary = new int[num][num]; //用二維數組存儲

for(int i = 0; i

{

ary[i][0] = 1;

ary[i][i] = 1;

}

for(int i = 1; i

{

for(int j = 1; j

{

//裡面部分,等於當前位置的上方和左上角之和

ary[i][j] = ary[i-1][j-1] + ary[i-1][j];

}

}

return ary;

}

private static void print(int[][] ary)

{

for(int i=0;i

{

for(int j=0;j

{

}

System.out.println(); //輸出換行

}

}

}

(5)運行結果

運行程序,結果如圖1.12所示。

圖1.12 程序輸出結果

3.擴展訓練

圖1.12輸出的楊輝三角是直角三角形,能不能輸出等腰三角形呢?答案是肯定的。等腰三角形類似於前面的金字塔圖案,參考前面介紹的思路,不難輸出等腰三角形。

(1)參考代碼

import java.util.*;

public class Ch1_5_2

{

public static void main(String[] args)

{

Scanner in = new Scanner(System.in); //獲取控制台輸入對象

int m = in.nextInt(); //從鍵盤接收輸入

int n=2*m-1; //列元素個數

int arr[][]=new int[m][n];

for(int i=0;i

{

for(int j=0;j

{

if(j=(m+i))) //輸出等腰三角形兩邊空格

else if((j==(m-i-1))||(j==(m+i-1)))

//計算並輸出等腰三角形兩個腰

{

arr[i][j]=1;

}

else if((i+j)%2==0&&m%2==0||(i+j)%2==1&&m%2==1)

//中間默認數字0用空格替換

else //計算並輸出中間數字

{

arr[i][j]=arr[i-1][j-1]+arr[i-1][j+1];

}

}

System.out.println(); //輸出換行

}

}

}

(2)運行結果

運行程序,結果如圖1.13所示。

圖1.13 程序輸出結果


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java吧 的精彩文章:

20個非常有用的的 Java程序片段
《Java編程思想》 之對象的集合
Java常用開發工具 介紹
Java代碼編譯和執行的整 個過程

TAG:java吧 |

您可能感興趣

素數(五)費馬是如何檢驗素數的?楊輝三角形和素數有什麼關係?
楊輝在網上為馬融·宋喆拍了近照,馬融的朋友也發了一份文件澄清
楊輝、陳子江等發表新成果!Cell子刊:新型高效精確的基因靶向整合策略
楊輝隆:桂花,深情地吟唱
國畫家曹楊輝山水畫藝術作品欣賞
點滴︱楊輝峰隨筆:齊白石與讀書
《故土親情之母親》 作者:楊輝隆 誦讀:王卉
曹楊輝、鄧華錦夫婦國畫藝術作品欣賞
楊輝 巽寮灣看海
曹楊輝、鄧華錦、魏廉貴國畫藝術作品欣賞
主題繪畫藝術——樹:馮自強、曾憲榮、曹楊輝、魏廉貴作品
草木發新榮,花香遍田野:啟功、孫家群、劉仁文、曹楊輝、劉朴國畫山水
張庚、邱笑秋、冉啟雍、曹楊輝、孫家群、劉仁文國畫山水