问题描述:
求杨辉三角的前n行数据。
输入格式:
输入n(n<10)值。
输出格式:
输出杨辉三角的前n行数据,每个数据占4列。
输入样例:
5
输出样例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
思路:
- 首先,该代码从标准输入中获取一个整数n,这个整数表示我们要生成的杨辉三角的行数。
- 接下来,它创建了一个10x10的二维数组
a
,并将所有元素初始化为0。这个数组将用于存储杨辉三角的数值。 - 然后,代码进入一个循环,用于生成每一行的数值。对于每一行,它首先将行号和列号对应的位置设置为1,表示这一行的开始和结束都是1。
- 对于第三行及以后的每一行,代码不仅将行号和列号对应的位置设置为1,还将当前行的第一个元素设置为1,同时将当前行的其他元素设置为上一行对应位置的两个元素的和。这是杨辉三角的基本特性。
- 最后,代码将生成的杨辉三角打印出来。它通过两个循环遍历整个二维数组,并将每个元素打印出来。在打印每行的元素时,还在元素之间添加了空格以使输出更美观。
代码:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int a[][] = new int[10][10];
for(int j=0; j<10; j++) {
for(int k=0; k<10; k++){
a[j][k] = 0;
}
}
for(int i=0; i<n; i++){
if(i==0) {
a[i][i] = 1;
}
else if(i==1){
a[i][i] = 1;
a[i][0] = 1;
}
else{
a[i][i] = 1;
a[i][0] = 1;
for(int j=1; j<=i-1; j++) {
a[i][j] = a[i-1][j] + a[i-1][j-1];
}
}
}
for(int i=0; i<n; i++){
for(int j=0; j<=i; j++){
System.out.print(" "+a[i][j]);
}
System.out.println();
}
}
}