如何减少数字?

时间:2015-04-01 00:53:45

标签: loops nested

我正在做一个嵌套循环问题,我想知道如何在数字达到某个数字后开始减少。我尝试过的东西在控制台中启动了无限循环。以下是所需输出的示例。

     1
    222
   33333
  4444444
 555555555
  4444444
   33333
    222
     1

这是我的代码:

public class DisplayPattern {
    public static void main(String[] args) {

        int odd = 1;
        int numbOfSpaces = 4;

        for (int i = 1; i <= 9; i++) {
            for (int j = numbOfSpaces; j >= 1; j--) {
                System.out.print(" ");
            }
            for (int j = 1; j <= odd; j++) {
                System.out.print(i);
            }
            System.out.println();

            if(i < 5) {
                odd = odd + 2;
                numbOfSpaces = numbOfSpaces - 1;
            }
            else {
                odd = odd -2;
                numbOfSpaces = numbOfSpaces + 1;
            }   
        }
    }
}

以下是我得到的输出:

    1
   222
  33333
 4444444
555555555
 6666666
  77777
   888
    9

1 个答案:

答案 0 :(得分:0)

使用代码(意味着最少量的mod)执行此操作的最简单方法是添加变量NumberToPrint = 1;在其他声明的变量旁边,而不是打印我打印NumberToPrint。 接下来,您必须递增和递减数字

    if(i < 5) {
        NumberToPrint++;
        //the other stuff still goes here
        ...
    }
    else {
        NumberToPrint--;
        //the other stuff still goes here
        ...

话虽如此,这不是正确的方法。试着想出一种方法来使这个通用和参数化所有内容,包括要去的最大数量。了解如何修复代码以使用具有2位数或3位数的数字。