以特定方式显示数字

时间:2015-01-10 06:02:58

标签: java

我们如何编写一个程序来显示如下的多个系列:

56789
6789
789
89
9

我编写了以下程序,但它没有提供所需的输出。缺了点什么。完成问题需要什么条件?

public class displaying {

   public static void main(String args[]) {
       int x, y, z;

       for (x = 0; x < 5; x++) {
           for (y = 5; y < 10; y++) {
               z = x + y;
               System.out.println(z);
           }
       }
    }
}

4 个答案:

答案 0 :(得分:1)

尝试类似:

for (x = 0; x < 5; x++) {
    for (y = 5; y < 10 - x; y++) {
       z = x + y;
       System.out.print(z);
    }
    System.out.println();
}
  • 您正在使用println,它将在z之后添加新的行字符,即在新行上打印您的z值。因此,使用不会添加新行字符的print方法,一旦你从内循环中走出来就使用println,这样你就可以获得换行符。
  • 你的内部循环将始终从5到9 + y遍历,即可能转到10/11等,这不是你想要的。因此,添加到循环10-x值,这样您就可以得到n,n-1,n-2值,这些值可以像for (y = x + 5; y < 10; y++) {一样进一步改进,并且可以避免在循环中添加。

答案 1 :(得分:0)

public static void main (String [] args){

    Int I = 56789;
    Int v = 5;

    System.out.println (I);

    for (Int p = 0; p < 5; p++){

        I -= v*Math.pow (10, 10-v);
        v++;
        System.out.println(I);

    }

}

我在手机上写了这个,很抱歉,如果它没有正确格式化。我也没有测试过它可能无法正常工作

答案 2 :(得分:0)

public static void main(String args[]) {
    int x, y;

    for (x = 0; x < 5; x++) {
        for (y = x + 5; y < 10; y++) {
            System.out.print(y);
        }

        System.out.println();
    }
}

之前,你的内部循环是:for (y = 5; y < 10; y++)。这样做会导致每个新计数从5开始。如果其他一切都是正确的,它将产生类似:

56789
56789
56789
56789
56789

现在唯一的另一个错误是System.out.println(z);,而不是内循环中的System.out.print(y);。这将导致所有输出打印在同一行。您想要的是在同一行打印内部输出,但之后打印'\n',您可以使用空白System.out.println()

答案 3 :(得分:0)

有时,明显的答案可能是最难发现的......

   for (int x = 5; x <= 9; x++) {
       for (int y = x; y <= 9; y++) {
           System.out.print(y);
       }
       System.out.println();
   }

我认为这是最能描述你想要的输出的循环。