java编程--图表(三)杨辉三角问题
package com.neuedu.one;
//杨辉三角问题
import java.util.Scanner;
public class Ch3 {
/*
根据输入行数打印出杨辉三角形,如下:
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
a[i][j]=a[i-1][j-1]+a[i-1][j]
n>i>=2,1=<j<=n-2
三角形里的任意一个数字正好等于它正上方的数字和左上角的数字之和
第几行就有几个数字
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入显示行数(n>2):");
int n = scanner.nextInt();
//定义一个二维数组
int[][] arr = new int[n][n];
for(int i = 0; i < arr.length; i++) {
arr[i][0] = 1;
arr[i][i] = 1;
}
for(int m = 2; m < n; m++) {//行
for(int k = 1; k <= n-2; k++) {//列
arr[m][k]= arr[m-1][k-1]+arr[m-1][k];
}
}
//打印二维数组
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j <= i; j++) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
-------------------------------------------------------------------------------------------------------------------------
package com.neuedu.one;
import java.util.Scanner;
//杨辉三角问题
public class Ch4 {
/* 输出如下图形
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
输入n行
a[n][2n-1]
a[0][n-1]=1 a[1][6] a[2][5]......1
a[1][8] a[2][9]
a[2][7]=a[1][6]+a[1][8]
a[i][j]=a[i-1][j-1]+a[i-1][j+1]; i>=2&&i<n j>=2&&j<=2n-4
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入显示的行数:");
int n = scanner.nextInt();
int[][] arr = new int[n][2*n-1];
for(int i = 0; i < n;i++) {
arr[i][n-1-i] = 1;
arr[i][n-1+i] = 1;
}
for(int i = 2; i < n; i++) {
for(int j = 2; j <= 2*n-4; j++) {
arr[i][j] = arr[i-1][j-1]+arr[i-1][j+1];
}
}
//打印
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
if(arr[i][j] == 0) {
System.out.print(" ");
}else {
System.out.print(arr[i][j]+" ");
}
}
System.out.println();
}
/* int a[][] = new int[2][2];
a[0][0] = 1;
a[0][1] = 2;
a[1][1] = 3;
for(int i = 0; i < a.length; i++) {
for(int j = 0; j < a[i].length; j++) {
System.out.println(a[i][j]+" ");
}
}*/
}
}