Java控制台输出杨辉三角

  • 题目:控制台输出任意行数的杨辉三角列表
  • 要求:
                            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
        }
    }
}
  • 运行结果
    Java控制台输出杨辉三角_第1张图片
    8687602.png

你可能感兴趣的:(Java控制台输出杨辉三角)