基于Java的杨辉三角
直角楊輝三角?
楊輝三角的規律是每行數字的第一列和最后一列的數字都是1,從第三行開始,除去第一列和最后一列都為數字1以外,其余每列的數字都等于它上方兩個數字之和。例如下面圖片中7字形圈起來的:4 = 3? + 1、35 = 15 +20。
?代碼實現:
public class YangHuiTriangle {public static void main(String[] args) {int[][] yangHui = new int[10][];for(int i = 0;i < yangHui.length;i++) {yangHui[i] = new int[i+1];yangHui[i][0] = yangHui[i][i] = 1;for(int j = 1;j < yangHui[i].length - 1;j++) {yangHui[i][j] = yangHui[i-1][j] + yangHui[i-1][j-1];}}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();} } }▲yangHui.length : 表示數組的行數 (整個程序中它的值都為 10 )
▲yangHui[i].length : 表示數組的列數(它的值等于 i+1 )
?說明:其中 j 的取值范圍之所以是 j = 1 ,??j < yangHui[i].length - 1;因為從第三行開始,除去第一列和最后一列都為數字1以外,其余每列的數字都等于它上方兩個數字之和。因此我們在第一行和第二行不需要用到第二個 for 循環。?
① i = 0, j = 1, yangHui[ i ].length - 1 = 0, j < 0 不符合,不執行第二個循環,回到第一個循環
② i = 1, j = 1, yangHui[ i ].length - 1 = 1, j < 1?不符合,不執行第二個循環,回到第一個循環
由此給第一行和第二行賦了值,接著往下:
③ i = 2, j = 1, yangHui[ i ].length - 1 = 2, j < 1 符合,執行第二個循環,開始給第三行和后面行數除去第一列和最后一列的其他列賦值,至此直到循環結束,再遍歷數組就可以得到楊輝三角。
int[][] yangHui = new int[10][]; 只需要把 10 替換成其他數字,就可以得到你想要的楊輝三角的行數
?
等腰楊輝三角
public class YHtriangle {public static void main(String[] args){int[][] YangHui = new int[10][];for(int i = 0;i < YangHui.length;i++) {//給第i行開辟i+1個空間YangHui[i] = new int[i+1];//給每一行的首位元素賦值,根據規律都賦值為1YangHui[i][0] = YangHui[i][i] = 1;//j=1是為了從第三行開始給中間元素賦值(根據楊輝三角規律從第三行開始)for(int j = 1;j < YangHui[i].length - 1;j++) {YangHui[i][j] = YangHui[i-1][j] + YangHui[i-1][j-1];}}//直角輸出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();}//等腰輸出for(int i = 0;i < YangHui.length;i++) {for(int j = 0;j < YangHui.length - i;j++) {System.out.print(" ");}for(int k = 0;k <= i;k++) {//System.out.print(YangHui[i][k] + " ");System.out.format("%4d", YangHui[i][k]);//格式化,每個位置固定占有4個字符的 空間}System.out.println();}}}?運行結果:
?
?注:有什么問題評論區留言,當天回復?
總結
以上是生活随笔為你收集整理的基于Java的杨辉三角的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将两个PCB文件合并成一个文件
- 下一篇: Eclipse用SVN上传新项目