蓝桥杯 算法提高VIP Pascal三角(java)
2018-03-25 13:33
429 查看
题目描述PASCAL三角是形状如下的三角矩阵:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
在PASCAL三角中的每个数是一个组合C(n,k)。
C(n,k)=(((((((n/1)(n-1))/2(n-2))/3)***(n-k+2))/(k-1))(n-k+1))/k
公式中交替使用乘法和除法,每次将从n开始递减的一个值相乘,然后除以下一个从1开始递增的值。
如果对行和列从0开始计数,则数字C(n,k)在n行k列。例如C(6,2)在第6行第2列。编程输出指定阶数的PASCAL三角矩阵。例如下面给出的是12阶PASCAL三角形矩阵。
编写程序,使运行结果为:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
输入无输出无样例输入
代码如下:import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[][] arr = new int[n+1][n+1];
for(int i=0;i<n+1;i++){ //行
arr[i][0]=arr[i][i]=1;//两侧都是1
}
for(int i=2;i<n+1;i++){
for(int j=1;j<n;j++){
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
for(int i=0;i<n+1;i++){
for(int k=i;k<n;k++){
System.out.print(" ");
}
for(int j=0;j<=i;j++){
System.out.printf("%3d ",arr[i][j]);
}
System.out.println();
}
}
}
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
在PASCAL三角中的每个数是一个组合C(n,k)。
C(n,k)=(((((((n/1)(n-1))/2(n-2))/3)***(n-k+2))/(k-1))(n-k+1))/k
公式中交替使用乘法和除法,每次将从n开始递减的一个值相乘,然后除以下一个从1开始递增的值。
如果对行和列从0开始计数,则数字C(n,k)在n行k列。例如C(6,2)在第6行第2列。编程输出指定阶数的PASCAL三角矩阵。例如下面给出的是12阶PASCAL三角形矩阵。
编写程序,使运行结果为:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
输入无输出无样例输入
3样例输出
1 1 1 1 2 1 1 3 3 1
代码如下:import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[][] arr = new int[n+1][n+1];
for(int i=0;i<n+1;i++){ //行
arr[i][0]=arr[i][i]=1;//两侧都是1
}
for(int i=2;i<n+1;i++){
for(int j=1;j<n;j++){
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
}
for(int i=0;i<n+1;i++){
for(int k=i;k<n;k++){
System.out.print(" ");
}
for(int j=0;j<=i;j++){
System.out.printf("%3d ",arr[i][j]);
}
System.out.println();
}
}
}
相关文章推荐
- 蓝桥杯 算法提高VIP Pascal三角(Java解题)
- 蓝桥杯 算法提高VIP 素数求和(java)
- 蓝桥杯 算法提高VIP Torry的困惑(提高型)(java)
- 蓝桥杯 算法提高VIP 种树(Java解题)
- 蓝桥杯 算法提高VIP 阮小二买彩票 (Java解题)
- 蓝桥杯 算法提高VIP 质因数2(Java解题)
- 蓝桥杯 算法提高VIP 质因数(Java解题)
- 蓝桥杯 算法提高VIP 数字黑洞(Java解题)
- 蓝桥杯 算法提高VIP Torry的困惑(提高型)(Java解题)
- 蓝桥杯 算法提高VIP 色盲的民主(Java解题)
- 蓝桥杯 算法提高VIP 陶陶摘苹果2(Java解题)
- 蓝桥杯 算法提高VIP 特殊的质数肋骨(Java解题)
- 蓝桥杯 PASCAL三角 算法提高 c++_ch03_02
- 蓝桥杯 算法提高VIP 质因数2(java)
- 蓝桥杯 算法提高VIP 最长单词(Java解题)
- 蓝桥杯 算法提高VIP 素数求和(Java解题)
- 蓝桥杯 算法提高VIP 寻找三位数(java)
- 蓝桥杯 算法提高VIP 寻找三位数(Java解题)
- 蓝桥杯 算法提高VIP 数组输出(Java解题)
- 蓝桥杯 算法提高VIP 递归倒置字符数组(Java解题)