练习-Java循环综合练习三之杨辉三角形

任务描述

本关任务:给定一个正整数 n,打印出有 n 行的杨辉三角形。

杨辉三角形的特征:

  • 第 n 行有 n 个数字;
  • 每一行的开始和结尾数字都为 1;
  • 从第 3 行起,除去每一行的开始和结尾数字,其余每个数都满足以下条件:任意一个数等于上一行同列和上一行前一列的和,如以下杨辉三角形中第 3 行第 2 列中的 2 等于它上一行同列(第 2 行第 2 列中的 1)和上一行前一列(第 2 行第 1 列中的 1)的和。

以下是行数有 5 行的杨辉三角形:

 
 
  1. 1
  2. 1 1
  3. 1 2 1
  4. 1 3 3 1
  5. 1 4 6 4 1

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。

注意:最后一行第一个数到行首的距离为 %2s 的距离,其余行往上依次加 %2s 的距离。

参考答案

/*
* 任务:从控制台获取输入的正整数n,打印带有n行的杨辉三角形
* 
杨辉三角形的特点:
- 第 n 行有 n 个数字;
- 每一行的开始和结尾数字都为 1;
- 从第 3 行起,除去每一行的开始和结尾数字,其余每个数都满足以下条件:任意一个数等于上一行同列和上一行前一列的和,
如以下杨辉三角形中第 3 行第 2 列中的 2 等于它上一行同列(第 2 行第 2 列中的 1)和上一行前一列(第 2 行第 1 列中的 1)的和。
以下是有5行的杨辉三角形:
             1
           1   1
         1   2   1
       1   3   3   1
     1   4   6   4   1
*/
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        // 创建Scanner对象
        Scanner input = new Scanner(System.in);
        // 获取输入的整数值
        int n = input.nextInt();
        // 请在Begin-End间编写代码
        /********** Begin **********/
        // 第一步:定义外循环打印行数
        for(int i =0;i<n;i++) {
            int number = 1;
        System.out.printf("%"+(n-i)*2+"s","");    
        // 第二步:定义内循环打印数字,其中数字之间以4位宽度显示,具体样式见预期输出
            for(int j=0;j<=i;j++) {
                System.out.format("%4d",number);
                number = number * (i - j) / (j + 1);
                           }
                           System.out.println();
                    }
        /********** End **********/
    }
}

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121207540