如何显示数字

时间:2015-10-22 00:26:40

标签: java input numbers

我刚接触Java编码,而且我在编写此程序时遇到了麻烦。

用户输入0到9之间的整数,并显示金字塔。例如:

用户输入:5

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

这就是我迄今为止所做的一切(我真的很难过)

import static java.lang.System.*;
import java.util.Scanner'
import java.util.*;

public class pyramid
{

public pyramid()
{
    Scanner scan = new Scanner(System.in);
    System.out.println("enter a number between 1 and 20");
    int num = scan.nextInt();

    for (int i = 0; i < num + 1; i++)
    {
        for (int j = 0; j < num - 1; j++)
        {
            System.out.println(" ");
        }

    }
}


}

欢迎并感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        pyramid();
    }

    public static void pyramid() {
        Scanner scan = new Scanner(System.in);
        System.out.println("enter a number between 1 and 20");
        int num = scan.nextInt();

        for (int i = 0; i < num + 1; i++) {
            for (int j = 0; j < num - i; j++) {
                System.out.print("  ");
            }
            for (int j = i; j > 0; --j) {
                System.out.printf("%d ", j);
            }
            for (int j = 2; j <= i; ++j) {
                System.out.printf("%d ", j);
            }
            System.out.println();
        }
    }
}

答案 1 :(得分:0)

开始列出您所知道的内容,以查找模式。说你有高度3:

······_1
···_2 _1 _2
_3 _2 _1 _2 _3

·是用于对齐的空间,_为第二个数字保留的空格。

Row                 0  1  2
Spaces in front     6  3  0      (3 * (num - i - 1))

所以你想循环j来打印那个数量的空格,然后再做一个循环(不在j内,但在它之后)将降序打印到1,然后另一个循环将升序号码打印回i+1。使用格式为System.out.printf的{​​{1}}会在单位数字上打印%2d空格。