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

问题描述 投票:0回答: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 到数字的一行。我不知道我能改变什么,或者这是否完全错误

java sequence
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.