zoukankan      html  css  js  c++  java
  • 杨辉三角形 -水题

    描述
    杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
    它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 
    下面给出了杨辉三角形的前4行:
       1
      1 1
     1 2 1 
    1 3 3 1
    给出n,输出它的前n行
    输入描述:输入包含一个数n。
    输入样例:4
    输出描述:输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
    输出样例:
    1
    1 1
    1 2 1
    1 3 3 1
    


    原理就是这样,第2层的数,是第二层两个数的相加 例如2 是由上一个两个1相加

    import java.util.*;
    public class pascal {
    	public static void main(String[] args) {
    		Scanner sca = new Scanner(System.in);
    		int x = sca.nextInt();
    		int arr[][] = new int[x][x];                                   // 创建一个二维数组,用于存放数据
    		int j1 = 1;
    		for (int i = 0; i < x; i++) {                                  //这个for用于控制行数
    			for (int j = 0; j < j1; j++) {                             // 这个是用于判断一行多少个数 存储指定的数之后就切换到下一行
    				if (j == 0)
    					arr[i][j] = 1;                                           // 为了跟下一行的特殊情况区分开 ,所以用了这个语句 因为 j-1会报错 而j-1所在的位置都是1所以放在一起
    				else
    					arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
    			}
    			j1++;                                                           // 跟前一个for相结合 控制一行有多少个数
    		}
    		                                                                       // 下面代码用于输出 输出的画可以经过后期调整 调整输出格式 这里只是采用普通的输出格式
    		int j2 = 1;
    		for (int i = 0; i < x; i++) {
    			for (int j = 0; j < j2; j++) {
    				System.out.print(arr[i][j] + " ");
    			}
    			System.out.println();
    			j2++;
    		}
    	}
    }
    
  • 相关阅读:
    不务正业系列-浅谈《过气堡垒》,一个RTS玩家的视角
    [LeetCode] 54. Spiral Matrix
    [LeetCode] 40. Combination Sum II
    138. Copy List with Random Pointer
    310. Minimum Height Trees
    4. Median of Two Sorted Arrays
    153. Find Minimum in Rotated Sorted Array
    33. Search in Rotated Sorted Array
    35. Search Insert Position
    278. First Bad Version
  • 原文地址:https://www.cnblogs.com/cznczai/p/11148219.html
Copyright © 2011-2022 走看看