//杨辉三角JAVA

//杨辉三角

题目:杨辉三角

问题描述
杨辉三角形又称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
数据规模与约定
1 <= n <= 34。

分析:主要是分析两种情况,两边的元素值为1,中间的元素值为上一行两个元素之和。

import java.util.Scanner;

public class Main2 {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n = sc.nextInt();
        sc.close();                       //这三行经常用来输入一个整数N,注意关闭,不然有waring
        int [][]a =new int [n][n];          //构建二位数组,因为有多行多列,new不可少
        //两层for循环构建二位数组
        for(int i=0;i<n;i++) {
            for(int j=0;j<=i;j++) {                //因为i从0开始,所以j《=i,才对j<i结果会少一行
                //用if else讨论两种赋值情况:如果是左右边缘则值为0,否则等于肩上数字之和;
                if(j==0||j==i)
                    a[i][j]=1;
                else
                    a[i][j]=a[i-1][j-1] + a[i-1][j];
            }
        }
        for(int i=0;i<n;i++) {
            for(int j=0;j<=i;j++) {
                System.out.print(a[i][j]+" ");
            }
            System.out.println();                  //每输出一层都要println换行
        }
    }
    

}

猜你喜欢

转载自blog.csdn.net/cjY135768/article/details/85469487