嚶嚶嚶,最近在學Java,邊聽視頻邊記筆記,老師出了一道Java題目(沒看答案,自己琢磨的,粗糙出請擔待),我粗略的知道自己能做,於是練習了一下,通過調試bug,修改好了程序,於是做下了記錄,希望能幫助大家!
題目:打印楊輝三角形(行數可以鍵盤錄入)
輸出下面的形式:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
我下面進行題目的分析:
- 首先,觀察輸出的數字圖形,知道行數和列數應該是相同的,所以題目纔要求:鍵盤輸入行數(而不是輸入行數和列數)
- 接着,每一行的第一個元素和最後一個元素都是1
- 然後,每行中除卻了第一個元素和最後一個元素外的其他元素的值是"肩上"的兩個元素的和,即arr[2][1] = arr[1][0]+arr[1];
- 最後,注意到行數從2開始纔會出現第三步的情況,且滿足需要進行加法運算的元素的個數是i-1(i是當前所在的行的數值),所以可以用for循環嵌套使用
代碼如下:
import java.util.Scanner;
class SwitchDemo
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("請輸入行數:");
int raw = sc.nextInt();
System.out.println("-----------------------");
int[][] arr = new int[raw][raw];
for(int i = 0;i < raw;i++)
{
arr[i][0] = 1;
arr[i][i] = 1;
if(i >= 2 && i < raw)
{
for(int j = 1;j <= i - 1;j++)
{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
for(int j = 0;j <= i;j++)
{
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}
代碼截圖效果:
關鍵詞:鍵盤錄入、for循環嵌套使用、二維數組
寫到最後,有興趣一起學Java的夥伴加我微信W17663712231,煩請關注我的微信公衆號"空谷小莜藍"哦!,謝謝大家