/*
* 1
* 1 1
* 1 2 1
* 1 3 3 1
* 1 4 6 4 1
* 1 5 10 10 5 1
*
* 分析:看规律
* 1,任意一行的第一个数跟最后一个数都为1
* 2, 从第三行开始,每一行数据是它上一行的前一列和它上一行的本列只和
*
* 步骤:1.首先定义一个二位数组,行数为n,列数也为n。(n为键盘录入)
* 2、给这个二维数组任意一行第一列跟最后一列为1;
* 3,按照规律给其它值赋值
* 从第三行开始,一行数据是它上一行的前一列和它上一行的本列只和
* 4.遍历这个二位数组
* */
package test;
import java.util.Scanner;
public class ArrayTest {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入一个数字");
int n = s.nextInt();
int[][] is = new int[n][n];// 定义二数组
for (int x = 0; x < is.length; x++) {
is[x][0] = 1;// 任意一行第一列
is[x][x] = 1;// 任意一行最后一列
}
for (int x = 2; x < is.length; x++) {
for (int y = 1; y <= x; y++) {
is[x][y] = is[x - 1][y - 1] + is[x - 1][y];
}
}
System.out.println("------------");
// 遍历这个二位数组
for (int x = 0; x < is.length; x++) {
for (int y = 0; y <= x; y++) {
System.out.print(is[x][y] + "\t");
}
System.out.println();
}
}
}
|
|