非洲陈伟霆 2022-01-09 13:00 采纳率: 20%
浏览 32

杨辉三角代码问题,有一行代码不明白#java

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
a(n);
}

private static void a(int n) {
    int [][] v = new int [n][n];
    for(int i = 0; i < n; i++){
        v[i][0] = 1;
        v[i][i] = 1;
        for(int j = 0; j < n; j++){
            if((i >= 2) && (j>0&&j<n)){
                v[i][j] = v[i-1][j-1] + v[i-1][j];
            }
        }
    }
      其中的  if((i >= 2) && (j>0&&j<n)){
              
            }                                                       这行代码是什么意思  麻烦解释一下 
  • 写回答

1条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-01-09 13:19
    关注

    解决这个问题我们要了解一些杨辉三角的特点。
    杨辉三角的特点:

    1. 第一行固定是一个 1
    2. 第二行也固定是两个 1
    3. 第 i 行, 首尾元素都是 1
    4. 第 i 行有 i 个元素
    5. 对于第 i 行来说, 第 j 列的值就是 i - 1 行的第 j - 1 列的值加第 j 列的值
      (i, j) = (i - 1, j) + (i - 1, j - 1)

      杨辉三角如图:

      img


      根据红框部分:

    img

    1. 第一行固定是一个 1
    2. 第二行也固定是两个 1
    3. 第 i 行, 首尾元素都是 1
      主要实现的就是这三个特点

    而下面红框这一部分:

    img


    实现的是:
    5. 对于第 i 行来说, 第 j 列的值就是 i - 1 行的第 j - 1 列的值加第 j 列的值
    (i, j) = (i - 1, j) + (i - 1, j - 1)
    这个特点。
    解决了这些,借助for循环遍历实现就可以了。
    希望对题主有所帮助,望采纳!

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月9日

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据