蓝桥杯-基础练习-杨辉三角形

来源:互联网 发布:java 黑白棋 编辑:程序博客网 时间:2024/05/01 12:11
问题描述

杨辉三角形又称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  其他的数字是肩上的两个数字的和
首先我们定义一个二维数组a ,用2个for语句给a[i][0]和a[i][i]赋值为1,即三角形边上的数字都是1
然后再用2个for语句给除了a[i][0]和a[i][i]的元素赋值, 让a[i][j] = a[i-1][j-1]+a[i-1][j]

import java.util.Scanner;public class Main{static int[][] getTriangle(int num){int[][] a = new int [num][num];for(int i=0 ; i<a.length ; i++){a[i][0] = 1;a[i][i] = 1;}for(int i=1 ; i<a.length ; i++){for(int j=1; j<=i ; j++){a[i][j] = a[i-1][j-1]+a[i-1][j];}}return a;}static void print(int[][]ary){for(int i=0 ; i<ary.length ; i++){for(int j=0 ; j<=i ; j++){System.out.print(ary[i][j]+" ");}System.out.println(); //注意换行语句的位置}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[][]a = getTriangle(n);print(a);}}

其中要赋值输出的时候要注意for语句中 i 和 j 的范围控制  


0 0
原创粉丝点击