java - 以 0 开头以 9 结尾的数字金字塔

标签 java

我想打印一个从0开始到9结束的数字金字塔,当它等于9时,程序应该从0到9重新开始,依此类推...

这是我尝试过的:

public static void main(String[] args) {

    for (int i = 0; i < 10; i += 2) {
        for (int j = 0; j < 10 - i; j += 2) {
            System.out.print(" ");
        }
        for (int k = 0; k <= i; k++) {
            System.out.print(" " + k);
        }
        System.out.println();
    }
}        

打印内容

      0
     0 1 2
    0 1 2 3 4
   0 1 2 3 4 5 6
  0 1 2 3 4 5 6 7 8

但我需要这个..

            0
         1  2  3
      4  5  6  7  8
   9  0  1  2  3  4  5...

最佳答案

您正在打印 k,它从 0 开始,每次迭代 i 都会打印 0 1 2 3.. 每次。相反,创建一个初始化为 0 的局部变量并打印它,并每次将其加一。在您的情况下,当 counter 值大于 9 时,您希望从 0 启动计数器,您可以通过包含 添加检查>if(计数器 > 9) 计数器 = 0;。添加了以下代码:

int counter = 0;
for (int i = 0; i < 10; i += 2) {
 for (int j = 0; j < 20 - i; j++) {
  System.out.print(" ");
 }
 for (int k = 0; k <= i; k++) {
  System.out.print(" " + counter++);
  if(counter > 9) counter = 0;
 }

 System.out.println();
}

输出

             0
           1 2 3
         4 5 6 7 8
       9 0 1 2 3 4 5
     6 7 8 9 0 1 2 3 4

DEMO

关于java - 以 0 开头以 9 结尾的数字金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698631/

相关文章:

java - ESB 应该如何打包/部署?

java - Android recyclerview 在 fragment 中不起作用

java - 用 Java 加载和保存基于图 block 的游戏。 XML 还是 TXT?

Java java.util.ConcurrentModificationException 错误

java - 仅通过直接调用运行 Jmeter 测试

java - elasticsearch GEO 按距离由近到远搜索顺序

java - 程序每次都给出相同的结果,而它应该是随机的

java - 如何通用地实现存储在 HashMap 中的调用方法?

java - 从 Open ONVIF(网络视频接口(interface)论坛)设备录制的问题

java - Spring 交易未提交