代码之家  ›  专栏  ›  技术社区  ›  matteo panaro

打印一系列数字,每次加一个数字

  •  0
  • matteo panaro  · 技术社区  · 1 年前

    我需要编写一个程序,当插入一个数字时,它会打印一个从1到该数字的数字序列,在单独的行中每次添加一个数字。 示例:如果插入8,则打印

    1
    1 2
    1 2 3
    1 2 3 ... 8
    
    import java.util.Scanner;
    public class Series {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            Scanner sc = new Scanner(System.in);
            System.out.print("Insert number ");
                int a = sc.nextInt();
                int i = 0;
            StringBuilder sb = new StringBuilder();
                for(i=1; i<=a; i++)
                    sb.append(i);
            System.out.println(sb.toString());
                
        }
    
    }
    

    我使用这个,显然它只打印从1到数字的一行。我不知道我能改变什么,或者这是否完全错误

    1 回复  |  直到 1 年前
        1
  •  2
  •   aaa    1 年前
    • 您已将所有数字附加到 StringBuilder 但是在循环后只打印一次结果,循环会在一行中输出整个序列,而不是像你想要的那样一步一步地输出。
    • 此外,这些数字被直接附加,没有任何空格,从而得到一个像12345这样的连接字符串

    以下是更正后的版本:

    import java.util.Scanner;
    
    public class Series {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.print("Insert number: ");
            int a = sc.nextInt();
            sc.close();
    
            StringBuilder sb = new StringBuilder();
            for (int i = 1; i <= a; i++) {
                sb.append(i).append(" ");
                System.out.println(sb.toString().trim());
            }
        }
    }
    

    结果

    Insert number: 10
    1
    1 2
    1 2 3
    1 2 3 4
    1 2 3 4 5
    1 2 3 4 5 6
    1 2 3 4 5 6 7
    1 2 3 4 5 6 7 8
    1 2 3 4 5 6 7 8 9
    1 2 3 4 5 6 7 8 9 10