蓝桥杯--BASIC-6 杨辉三角形
试题 基础练习 杨辉三角形
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
输入包含一个数n。
1 1
1 2 1
1 3 3 1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 杨辉三角的规律
// 1.第n行有n个数字.
// 2.每一行的开始和结尾数字都为1.
// 用二维数组表示就是a[i][0]=1; a[i][j]=1(当i==j时);
//
// 第n+1行的第i个数字等于第n行的i-1个数字加上第n行的i个数字。
// 用二维数组表示就是 a[i+1][j]=a[i][j-1]+a[i][j];
Scanner sc = new Scanner(System.in);
int rows = sc.nextInt();
int[][] arr = new int[rows][rows];
for (int i = 0; i < arr.length; i++) {
// 由于只是给杨辉三角内的位置赋值,所以是j<=i
for (int j = 0; j <= i; j++) {
// 根据规律,使用if else 赋值
if (j == 0 || j == i) {
arr[i][j] = 1;
} else {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
/*
* 由于只是输出杨辉三角范围内的值,所以在内层循环就输出,这种方法不能全部赋值完之后再输出
* "\t"的原因是10和小于10的数组的宽度不同,所以使用\t制表符能使数与数之间距离相等
*/
System.out.print(arr[i][j] + "\t");
}
System.out.println();
}
}
}
演示效果如下--
希望对大家有所帮助!
谢谢大家!
- 点赞
- 收藏
- 关注作者
评论(0)