蓝桥杯-BASIC-6-杨辉三角形

举报
一只卡拉咪 发表于 2022/02/21 14:29:33 2022/02/21
【摘要】 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。    它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。    下面给出了杨辉三角形的前4行:       1      1 1     1 2 1    1 3 3 1    给出n,输出它的前n行。 输入格式 输入包含一个数n。 输出格式 输出杨辉三角形的前
问题描述

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

  

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

  

下面给出了杨辉三角形的前4行:

  

   1

  

  1 1

  

 1 2 1

  

1 3 3 1

  

给出n,输出它的前n行。

输入格式

输入包含一个数n。

输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
解题思路
基础练习 二维数组
参考代码

import java.util.Scanner;
public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int n=sc.nextInt();
        getTriangle(n);


    }
    public static int[][] getTriangle(int n){
        int[][] arr=new int[n][n];      //创建二维数组行列数都为n
        for (int  i = 0; i <arr.length ; i++) {
            for(int j=0;j<=i;j++){
                if(i==0||j==0||i==j){       //判断如果行数、列数为1,或行列数相等
                    arr[i][j]=1;            //则赋值1
                }else{        //否则,其他位置的值 = 上一行前一列的值 + 上一行这一列的值
                    arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
                }
            }
        }
        //便利二维数组
        for(int i=0;i<arr.length;i++){
            for(int j=0;j<=i;j++){
                System.out.print(arr[i][j]+"\t");
            }
            System.out.println();
        }
        return arr;
    }


}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。