楊輝三角怎麼完成 一定要多多練習
(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 程序輸出結果
※20個非常有用的的 Java程序片段
※《Java編程思想》 之對象的集合
※Java常用開發工具 介紹
※Java代碼編譯和執行的整 個過程
TAG:java吧 |
※素數(五)費馬是如何檢驗素數的?楊輝三角形和素數有什麼關係?
※楊輝在網上為馬融·宋喆拍了近照,馬融的朋友也發了一份文件澄清
※楊輝、陳子江等發表新成果!Cell子刊:新型高效精確的基因靶向整合策略
※楊輝隆:桂花,深情地吟唱
※國畫家曹楊輝山水畫藝術作品欣賞
※點滴︱楊輝峰隨筆:齊白石與讀書
※《故土親情之母親》 作者:楊輝隆 誦讀:王卉
※曹楊輝、鄧華錦夫婦國畫藝術作品欣賞
※楊輝 巽寮灣看海
※曹楊輝、鄧華錦、魏廉貴國畫藝術作品欣賞
※主題繪畫藝術——樹:馮自強、曾憲榮、曹楊輝、魏廉貴作品
※草木發新榮,花香遍田野:啟功、孫家群、劉仁文、曹楊輝、劉朴國畫山水
※張庚、邱笑秋、冉啟雍、曹楊輝、孫家群、劉仁文國畫山水