package yanghuisanjiaoxing;
import java.util.Scanner;
/* * 使用二维数组打印杨辉三角形的图案 * * 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 * 1 5 10 10 5 1 * * 分析:看这种图像的规律 A:任何一行的第一列和最后一列都是1 B:从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。
步骤: A:首先定义一个二维数组。行数如果是n,我们把列数也先定义为n。 这个n的数据来自于键盘录入。 B:给这个二维数组任何一行的第一列和最后一列赋值为1 C:按照规律给其他元素赋值 从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 D:遍历这个二维数组。
*/ public class YangHuiSanJiaoXingDemo { // 打印二维数组的方法: public static void printArray2(int[][] arr) { for (int x = 0; x < arr.length; x++) { for (int y = 0; y <= x; y++) { System.out.print(arr[x][y] + “\t”); } System.out.println(); }
} //打印一般的二维数组的方法 public static void print2(int[][] arr2) { for (int x = 0; x < arr2.length; x++) { for (int y = 0; y < arr2[x].length; y++) { System.out.print(arr2[x][y] + “, “); }
} }
public static void main(String[] args) { int[][] arr2 = { { 12, 13, 22, 33 }, { 11, 22, 33 }, { 55, 66, 77 } }; print2(arr2); System.out.println(“—————“);
Scanner input = new Scanner(System.in); System.out.println(“请输入一个数字:”); int n = input.nextInt(); // 定义一个二维数组,行数如果为n,我们把列也定义为n int[][] arr = new int[n][n]; // 给这个二维数组任何一行的第一列和最后一列赋值为1 for (int x = 0; x < arr.length; x++) { arr[x][0] = 1; arr[x][x] = 1; } /* * 按照规律给其他元素赋值 从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 * * * 1 * 1 1 * 1 2 1 * 1 3 3 1 * 1 4 6 4 1 * 1 5 10 10 5 1 */
for (int x = 2; x < arr.length; x++) { for (int y = 1; y < x; y++) { arr[x][y] = arr[x – 1][y – 1] + arr[x – 1][y]; } }
printArray2(arr);
} }
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100819.html原文链接:https://javaforall.cn