定义的一个二维数组
int rangle[][] = {
new int[] {
0
}, new int[] {
0, 0
}, new int[] {
0, 0, 0
}, new int[] {
0, 0, 0, 0
}, new int[] {
4, 5, 2, 6, 5
}
};
要的结果是把下面最相邻的两个相加赋值到前面一个位置上,最终结果是
int rangle[][] = {
new int[] {
65
}, new int[] {
31, 34
}, new int[] {
16, 15,19
}, new int[] {
9, 7, 8, 11
}, new int[] {
4, 5, 2, 6, 5
}
};
求代码
代码:
import java.util.Arrays;
public class Test1 {
public static void main(String[] args) {
int rangle[][] = {
new int[] {
0
}, new int[] {
0, 0
}, new int[] {
0, 0, 0
}, new int[] {
0, 0, 0, 0
}, new int[] {
4, 5, 2, 6, 5
}
};
for (int i = rangle.length-1; i > 0; i--) {
int arr [] = new int [rangle[i].length-1];
for (int j = 0; j < rangle[i].length-1; j++) {
arr[j] = rangle[i][j]+rangle[i][j+1];
}
rangle[i-1] = arr;
}
for (int i = 0; i < rangle.length; i++) {
System.out.println(Arrays.toString(rangle[i]));
}
}
}
>运行结果:
[65]
[31, 34]
[16, 15, 19]
[9, 7, 8, 11]
[4, 5, 2, 6, 5]
//n为数组得第几维
int[][] function(int[][] rangle,int n){
if(n-1<0){
return rangle;
}
for(int i=1,i<rangle[n].length,i++){
rangle[n-1][i-1]=rangle[n][i]+rangle[n][i-1];
}
retrun function(rangle,n--);
}
public static void main(String[] args) {
int rangle[][] = { new int[] { 0 }, new int[] { 0, 0 }, new int[] { 0, 0, 0 }, new int[] { 0, 0, 0, 0 }, new int[] { 4, 5, 2, 6, 5 } };
for (int i = rangle.length - 1; i > 0; i--) {
int rangleItem[] = rangle[i];
for (int j = 0; j < rangleItem.length - 1; j++) {
rangle[i - 1][j] = rangleItem[j] + rangleItem[j + 1];
}
}
}
import java.util.Scanner;
public class 二维数组 {
/*
* 自己输入底层数据,输出二维数组
* */
public static void main(String[] args) {
System.out.println("请输入底层的数字,用,隔开");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String[] a = line.split(",");
int[] arr = new int[a.length];
for(int i =0 ;i<a.length;i++){
arr[i] = Integer.parseInt(a[i]);
}
int[][] doubleArray = getdoubleArray(arr.length);
doubleArray[arr.length-1] = arr;
for(int i =arr.length-2;i>=0;i--){
int[] rows = doubleArray[i];
for(int j=rows.length-1;j>=0;j--){
doubleArray[i][j] = doubleArray[i+1][j]+doubleArray[i+1][j+1];
}
}
for(int i = 0;i<doubleArray.length;i++){
int[] arr3 = doubleArray[i];
for(int j =0;j<arr3.length;j++){
System.out.print(addBlank(doubleArray[i][j])+" ");
}
System.out.println();
}
}
public static int[][] getdoubleArray(int n){
int[][] doubleArray = new int[n][];
while(n>=1){
int[] arr = new int[n];
doubleArray[n-1] = arr;
n--;
}
return doubleArray;
}
public static String addBlank(int n){
if(n<10){
return " "+n;
}else{
return ""+n;
}
}
}