1. 程式人生 > 實用技巧 >關於列印楊輝三角等系列問題的思考

關於列印楊輝三角等系列問題的思考

1.把大象放進冰箱

在進入正題之前,我們首先要知道如何把大象放進冰箱中。

  1. 把冰箱門開啟(這裡我們已經有冰箱了,如果沒有我們還要準備一個合適的冰箱)
  2. 把大象放進去 (這裡具體的方法有很多種,具體情況具體分析)
  3. 把冰箱門關上(後續的處理工作)

這個看似荒誕的問題,給我一種啟示:把一個看似完成的不了的任務,拆解為可以完成的小任務,往往是有效的。

2.楊輝三角問題

對於初學程式設計的同學,在學習流程控制的時候,通常都會學習列印圖形的練習。

同樣對於程式設計老鳥來說,再次看到這些基礎的問題,也會覺得頭大。

A:這是都是什麼鬼?
B:這問題再學我就要去世了!
C:別問,問就不會。
D:大象都能放進冰箱,這問題so easy,那不就是兩行程式碼一梭子的事情
E:對對對,寫程式碼也沒那麼難麼

無論是新手的困惑,老鳥的頭大,或者是大佬的不屑。

在面對這種看似複雜難以解決的問題的時候,我們不妨按照大象放進冰箱的思路來解決類似的問題。

/**
 * 以經典的楊輝三角為例,梳理解決思路和思維方式
 * 通常說把大象放冰箱分為三步驟,
 * ①把冰箱門開啟(選擇合適資料型別的變數宣告並初始化)
 * ②把大象放進去(分析規律,把資料放進來,賦值操作)
 * ③把冰箱門關上(展示效果,把資料遍歷展示)
 *
 * @author masting
 * @fileName YangHuiTest
 * @description
 * @date 2020/8/8 13:50
 
*/ public class YangHuiTest { public static void main(String[] args) { //1.準備冰箱,把門開啟(建立二維陣列變數的宣告並動態初始化) int num=10;//輸出10行 int [][] yangHui=new int[num][]; //2.把大象放進去(變數賦值:通常二維陣列以行列來處理) for(int i=0;i<yangHui.length;i++){ //2.1每行資料的長度(二維陣列內層陣列賦值)i
yangHui[i]=new int[i+1]; //2.2每行的首尾特殊資料的處理; yangHui[i][0]=yangHui[i][i]=1; //2.3內層陣列列,有規律的特殊資料賦值 for(int j=1;j<yangHui[i].length-1;j++){ //重點就是找出特殊資料的規律(找到規律帶入這麼模板就可以了) yangHui[i][j]=yangHui[i-1][j-1]+yangHui[i-1][j]; } } //3.把冰箱門關上(遍歷輸出,展示效果) for(int i=0;i<yangHui.length;i++){ for(int j=0;j<yangHui[i].length;j++){ //每列不換行 System.out.print(yangHui[i][j]+" "); } //每行結束換行 System.out.println(); } } }

3.總結

適合簡單的有規律的二維陣列列印,如果是複雜的情況。雖然寫法不是這樣的,但是思路也是把難的任務拆解為簡單的任務來實現。

演算法的雛形,多刷題,多練習。