4

予想される出力は次のとおりです。

1
12
123
1234
12345
123456
1234567
12345678
123456789
1234567890
12345678901
123456789012

以下は、私が使用する開始コードです。

import java.util.Scanner;

public class Pyramid {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Type in an integer value");
        Scanner in = new Scanner(System.in);
        int input = in.nextInt();
        String str = "";
        for(int i=1;i<=input;i++){
            str += i;
            System.out.println(str);
        }
    }
}

以下は、現時点での私の出力です。

Type in an integer value
15
1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910
1234567891011
123456789101112
12345678910111213
1234567891011121314
123456789101112131415

この問題を解決する方法を考えていました。If ステートメントを記述した場合if(i > 9){ i = 0; }。しかし、それは私のカウンターをリセットしますか?

このタスクを達成するにはどうすればよいですか? 私は何が欠けていますか?

4

4 に答える 4

5

モジュロ演算子を使用して、i10 に達したらループを 0 に戻すことができます。

str += i % 10;
于 2013-05-14T23:36:41.140 に答える
2

%モジュロ演算子を使用するだけで、任意の数まで機能します。

public static void main(String[] args) throws IOException {
    System.out.println("Type in an integer value");
    Scanner in = new Scanner(System.in);
    int input = in.nextInt();
    String str = "";
    for (int i = 1; i <= input; i++) {
        str += i % 10;
        System.out.println(str);
    }
}
于 2013-05-14T23:32:43.877 に答える