首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

二维数组最后输出有关问题

2012-12-18 
二维数组最后输出问题倒置的杨辉三角形输入多组n值,每行一个整数输出对应于每一个n值,输出一个倒杨辉三角

二维数组最后输出问题
倒置的杨辉三角形
输入
多组n值,每行一个整数


输出
对应于每一个n值,输出一个倒杨辉三角形

每个杨辉三角形之间用一个空行隔开

每个杨辉三角形的最上面的第一行的第一个数字在第一列,后面的每个数字占据3个字符的宽度

从第二行开始,每一行的最前面加多一个空格,每一行的第一个数字1占据一个字符的宽度,后面的每个数字占据三个字符的宽度



样例输入
5
3
样例输出
1  4  6  4  1
 1  3  3  1
  1  2  1
   1  1
    1

1  2  1
 1  1
  1

贴上代码,现在可以倒着输出三角形,但前面的空格不知怎样弄,求解

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
int i,j;
int n=rd.nextInt();
int arr[][]=new int[n][];
for(i=0;i<n;i++)
{
arr[i]=new int[i+1];
}
for(i=0;i<arr.length;i++)
{
for(j=0;j<arr[i].length;j++)
{
if(i>j&&j!=0){
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
else
{
 arr[i][j]=1;
}
}
}
for(i=arr.length-1;i>=0;i--)
{
for(j=0;j<arr[i].length;j++)
{
if(j==arr[i].length-1)
{
System.out.print(arr[i][j]);
}else{
System.out.print(arr[i][j]+"   ");
}

}
System.out.println();
}

[最优解释]

public static void main(String[] args) {
        // TODO Auto-generated method stub
//        Scanner rd=new Scanner(System.in);
        int i,j;
        int n=5;
        int arr[][]=new int[n][];
        for(i=0;i<n;i++)
        {
            arr[i]=new int[i+1];
        }
        for(i=0;i<arr.length;i++)
        {
            for(j=0;j<arr[i].length;j++)
            {
                if(i>j&&j!=0){
                arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
                }
                else
                {
                 arr[i][j]=1;
                }
            }
        }
        for(i=arr.length-1;i>=0;i--)
        {
        for(int m=arr.length-i;m>0;m--)


        System.out.print("  ");
            for(j=0;j<arr[i].length;j++)
            {
            
                if(j==arr[i].length-1)
                {
                    System.out.print(arr[i][j]);
                }else{
                    System.out.print(arr[i][j]+"   ");
                }
                 
            }
            System.out.println();
        }
}


[其他解释]
运行结果是:

5
3
  1   4   6   4   1
    1   3   3   1
      1   2   1
        1   1
          1

  1   2   1
    1   1
      1

[其他解释]
引用:
Java code



123456789101112131415161718192021222324252627282930313233343536373839404142

public static void main(String[] args) {         // TODO Auto-generated method stub //        Scanner rd……

输入
多组n值,每行一个整数
样例输入
5
3
样例输出
1  4  6  4  1
 1  3  3  1
  1  2  1
   1  1
    1

1  2  1
 1  1
  1

要怎样才能这样?
[其他解释]
程序如下:
public class Triangle1 {
public static void main(String[] args) {
Triangle t = new Triangle();
Scanner read = new Scanner(System.in);
int n = read.nextInt();
int m = read.nextInt();
t.output(n);
System.out.println();
t.output(m);
}



public class Triangle {
public void output(int x) {
int i, j;
int n = x;
int arr[][] = new int[n][];
for (i = 0; i < n; i++) {
arr[i] = new int[i + 1];


}

for (i = 0; i < arr.length; i++) {
for (j = 0; j < arr[i].length; j++) {
if (i > j && j != 0) {
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
} else {
arr[i][j] = 1;
}
}
}

for (i = arr.length - 1; i >= 0; i--) {
for (int m = arr.length - i; m > 0; m--)
System.out.print("  ");
for (j = 0; j < arr[i].length; j++) {
if (j == arr[i].length - 1) {
System.out.print(arr[i][j]);
} else {
System.out.print(arr[i][j] + "   ");
}
}
System.out.println();
}
}
}

热点排行