wwwwww-q 2023-04-18 10:52 采纳率: 50%
浏览 96
已结题

java用scanner语句构建杨辉三角详细解析

😭很ji,java课要上去讲代码,啥也不会,想求一个超详细的讲解(代码是搜的,但是真的一步也看不懂😭teacher要提问)

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入杨辉三角的层数:");
        int n = sc.nextInt();

        int[][] yanghui = new int[n][n];
        // 初始化第一列和对角线上的值
        for (int i = 0; i < n; i++) {
            yanghui[i][0] = 1;
            yanghui[i][i] = 1;
        }
        // 计算每个数的值
        for (int i = 2; i < n; i++) {
            for (int j = 1; j < i; j++) {
                yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
            }
        }
        // 输出杨辉三角
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print(yanghui[i][j] + " ");
            }
            System.out.println();
        }
    }
}

  • 写回答

7条回答 默认 最新

  • 阳光宅男xxb 2023-04-18 11:18
    关注

    为您添加了注解。看不懂可以继续问我。

    
     public static void main(String[] args) {
            //从控制台读取将要输入的数字,
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入杨辉三角的层数:");
            int n = sc.nextInt();//n是杨辉三角的层数
             
            //定义一个nxn的二维数组用于存储杨辉三角中每个位置的值
            int[][] yanghui = new int[n][n];
            // 初始化第一列和对角线上的值
            for (int i = 0; i < n; i++) {
                yanghui[i][0] = 1;//第一列的值全是1
                yanghui[i][i] = 1;//对角线上的值全是1
            }
            // 计算每个数的值
            for (int i = 2; i < n; i++) {//从第二行开始循环,循环n-1次
                for (int j = 1; j < i; j++) {//从第1列开始循环,循环i-1次,因为第i行只有i-1列
                    yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j]; //第i行第j列的值=第i-1行第j-1列的值+第i-1行第j列的值,
                }
            }
            // 输出杨辉三角
            for (int i = 0; i < n; i++) {//共n行,循环n次
                for (int j = 0; j <= i; j++) {//第i行有i,所以循环i次,比如,第一行有1列
                    System.out.print(yanghui[i][j] + " ");//输出一个值,以空格隔开
                }
                System.out.println();//每输出完一行数字后换行,继续输出下一行
            }
        }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 4月26日
  • 已采纳回答 4月18日
  • 创建了问题 4月18日

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助