/*----------二维数组 ------------
高维数组
元素是数组的数组
*/
/* 3x+7y+9z = 27
* 4x+6y+3z = 78
* */
// int[][] arr = new int[2][4];//元素是一维数组 有两个这样的元素
// int[][] arr2 = {{101,2},{3,4,5}};
//
// //二维数组的遍历访问
// //区元素 arr[i] 元素是一维数组
// for(int i=0;i<arr2.length;i++){
// //遍历 arr[i] 这个数组
// for(int j =0;j<arr2[i].length;j++){
// System.out.print(arr2[i][j]+" ");
// }
// System.out.println();
// }
/*---练习; 打印n行的杨辉三角
* (a+b)^n
* ----
* 1 0 0 0 0
* 1 1 0 0 0 arr[i][j] = arr[i-1][j]+arr[i-1][j-1]
* 1 2 1 0 0
* 1 3 3 1 0
* 0 0 0 0 0
*
*
* */
// int n = 40;
// int[][] arr= new int[n][n];
// arr[0][0] = 1;
// arr[1][0] = 1;
// arr[1][1] = 1;
//
// //控制行数 第二行开始
// for(int i=1;i<n;i++){
// arr[i][0] = 1;//第一列恒为1
// //控制列数 第二个开始 总共当前行数个-1
// for (int j = 1; j <i+1; j++) {
// arr[i][j] = arr[i-1][j]+arr[i-1][j-1];
// }
// }
//
// //输出
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < i+1; j++) {
// System.out.print(arr[i][j]+" ");
// }
// System.out.println();
// }
/*---补充 不用数组实现 杨辉三角-----*/
// n行 1 1*(n-1)/1 1*(n-1)/1*(n-2)/2 1*(n-1)* (n-2)/2 * (n-3)/3
//
// 1*(n-1)*(n-2)*(n-3) ...*(n-j) (n-(j+1))
// ------------------------------- * -----
// 1*2*3*4...*j (j+1)
// n行 的第j个 (j从0开始) num[j] = 前面一个*(n-j)/j
/* 1 0 0 0 0
* 1 1 0 0 0
* 1 2 1 0 0
* 1 3 3 1 0
* 1 4 6 4 1
* 1 5 10 10 5 1
*/
int n = 6;
for (int i = 1; i <=n; i++) {
int start=1;
System.out.print(1+" ");
for(int j=1;j<i;j++){
start *= (double)(i-j)/j;
System.out.print(start +" ");
}
System.out.println();
}
}
}
高维数组
元素是数组的数组
*/
/* 3x+7y+9z = 27
* 4x+6y+3z = 78
* */
// int[][] arr = new int[2][4];//元素是一维数组 有两个这样的元素
// int[][] arr2 = {{101,2},{3,4,5}};
//
// //二维数组的遍历访问
// //区元素 arr[i] 元素是一维数组
// for(int i=0;i<arr2.length;i++){
// //遍历 arr[i] 这个数组
// for(int j =0;j<arr2[i].length;j++){
// System.out.print(arr2[i][j]+" ");
// }
// System.out.println();
// }
/*---练习; 打印n行的杨辉三角
* (a+b)^n
* ----
* 1 0 0 0 0
* 1 1 0 0 0 arr[i][j] = arr[i-1][j]+arr[i-1][j-1]
* 1 2 1 0 0
* 1 3 3 1 0
* 0 0 0 0 0
*
*
* */
// int n = 40;
// int[][] arr= new int[n][n];
// arr[0][0] = 1;
// arr[1][0] = 1;
// arr[1][1] = 1;
//
// //控制行数 第二行开始
// for(int i=1;i<n;i++){
// arr[i][0] = 1;//第一列恒为1
// //控制列数 第二个开始 总共当前行数个-1
// for (int j = 1; j <i+1; j++) {
// arr[i][j] = arr[i-1][j]+arr[i-1][j-1];
// }
// }
//
// //输出
// for (int i = 0; i < n; i++) {
// for (int j = 0; j < i+1; j++) {
// System.out.print(arr[i][j]+" ");
// }
// System.out.println();
// }
/*---补充 不用数组实现 杨辉三角-----*/
// n行 1 1*(n-1)/1 1*(n-1)/1*(n-2)/2 1*(n-1)* (n-2)/2 * (n-3)/3
//
// 1*(n-1)*(n-2)*(n-3) ...*(n-j) (n-(j+1))
// ------------------------------- * -----
// 1*2*3*4...*j (j+1)
// n行 的第j个 (j从0开始) num[j] = 前面一个*(n-j)/j
/* 1 0 0 0 0
* 1 1 0 0 0
* 1 2 1 0 0
* 1 3 3 1 0
* 1 4 6 4 1
* 1 5 10 10 5 1
*/
int n = 6;
for (int i = 1; i <=n; i++) {
int start=1;
System.out.print(1+" ");
for(int j=1;j<i;j++){
start *= (double)(i-j)/j;
System.out.print(start +" ");
}
System.out.println();
}
}
}