- **题目:**控制台输出任意行数的杨辉三角列表
- 要求:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
··· ···
复制代码
- 思路:
- 定义一个二维数组arrTriangle[row][row],arrTriangle[x][j] = arrTriangle[i - 1][j - 1] + arrTriangle[i - 1][j]
- 定义杨辉三角最大行数20行,数字之间至少一个空格隔开;
- 键盘录入行数
import java.util.Scanner;
public class PascalTriangle_1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数:");
int row = sc.nextInt();
System.out.println("杨辉三角如下:");
if (row == 1) {
System.out.println(1);
return;
}else if (row < 1 || row > 20) {
System.out.println("输入错误!");
return;
}
int[][] arrTriangle = new int[row][row];
//前两行单独输出
arrTriangle[0][0] = 1;
arrTriangle[1][0] = 1;
arrTriangle[1][1] = 1;
for (int i = 1 ;i <= row ; i ++) { //循环输出各行数据
arrTriangle[i - 1][0] = 1; //每行第一个数是1
arrTriangle[i - 1][i - 1] = 1; //每行最后一个数是1
for (int j = row - i; j > 0;j -- ) { //行前打印空格
System.out.print(" ");
}
if (i > 1) { //i没有限制第一行会打印出2个1
System.out.print(arrTriangle[i - 1][0] + " "); //打印每行第一个数1
}
for (int column = 1 ; column < i - 1 ; column ++ ) {//计算除1以外的所有的数
arrTriangle[i-1][column] = arrTriangle[i - 2][column - 1] + arrTriangle[i - 2][column];
System.out.print(arrTriangle[i-1][column] + " "); //打印出所有除1以外的说有的数
if (arrTriangle[i-1][column] < 10) { //增加相邻数字之间的距离保证打印整齐
System.out.print(" ");
}else if (arrTriangle[i-1][column] < 100) {
System.out.print(" ");
}else if (arrTriangle[i-1][column] < 1000) {
System.out.print(" ");
}else if (arrTriangle[i-1][column] < 10000) {
System.out.print(" ");
}
}
System.out.println(arrTriangle[i - 1][i - 1]);//输出每一行最后一个数1
}
}
}
复制代码
转载于:https://juejin.im/post/5a34e6c6518825698e722231