0

私のプログラムでは、ユーザーが 5 桁の数字を入力する必要があります。その 5 桁の整数を取得してすべての数字を加算する方法が必要です。たとえば、ユーザーが 26506 を入力すると、プログラムは 2+6+5+0+6 を実行して 19 を返します。これはある種のループによって行われると思いますが、どこから始めればよいかわかりません。

明確にするために、この整数は何でもかまいませんが、5 桁である必要があります。

4

7 に答える 7

6

私の頭の上から、それを文字列に変換し、各文字を反復処理して、値を ( charAt( position ) - '0' ) で累積することができます。私は今Javaコンパイラから離れていますが、これはうまくいくはずです。数値データのみを持っていることを確認してください。

于 2012-10-16T19:52:32.840 に答える
5
int sum = 0;
while(input > 0){
    sum += input % 10;
    input = input / 10;
}
于 2012-10-16T19:52:44.807 に答える
3

modulusで数のを取るたびに、その10桁に数字がones入ります。数字を 10ずつdivide数えると、数字以外のすべての数字が得られますones。したがって、このアプローチを使用して、次のようにすべての数字を合計できます。

22034 % 10 = 4
22034 / 10 = 2203

2203 % 10 = 3
2203 / 10 = 220

220 % 10 = 0
220 / 10 = 22

22 % 10 = 2
22 / 10 = 2

2 % 10 = 2

それらをすべて追加します.. (4 + 3 + 0 + 2 + 2 = 11)

于 2012-10-16T19:54:36.690 に答える
2

入力が文字列の場合:

public static void main(String[] args) {
        // TODO code application logic here
        System.out.println("Enter your number: ");


        try{
            BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
            String input = bufferRead.readLine();
            char[] tokens;
            tokens = input.toCharArray();
            int total=0;
            for(char i : tokens){
                total += Character.getNumericValue(i);
            }
            System.out.println("Total: " + total);

            }catch(IOException e){
                e.printStackTrace();
            }            
    }

入力が整数の場合、簡単に使用できます

    String stringValue = Integer.toString(integerValue);

プラグインします。

于 2012-10-16T19:58:10.980 に答える
2

You need to divide and take the modulus:

26506 / 10000 = 2
26506 % 10000 = 6506

6506 / 1000 = 6
6506 % 1000 = 506

506 / 100 = 5
506 % 100 = 6

6 / 10 = 0
6 % 10 = 6

6 / 1 = 6

So the result of each division is the digit for that base10 place, in order to get the next lesser significant digit, you take the modulus. Then repeat.

于 2012-10-16T19:53:21.227 に答える
0

これには 2 つのアプローチがあります。

以下を使用して番号をアンパックします:(番号が5文字のままであると仮定)

int unpack(int number)
{
    int j = 0;
    int x = 0;
    for(j = 0; j < 5; j++){
        x += number % 10;
        number = number / 10;
    }
    return x;
}

それを文字列に入れて個々の文字を選択し、整数に解析します。

int sumWithString(String s)
{
    int sum = 0;
    for(int j = 0;j < 5;j++){
        try{
        sum += Integer.parseInt(""+s.charAt(j));
        }catch(Exception e){ }
    }
    return sum;
}
于 2012-10-16T20:02:31.203 に答える
0
    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter number: ");
    String s = scanner.nextLine();

    char[] a = s.toCharArray();
    int total = 0;

    for(char x: a){
        try {
            total += Integer.parseInt(""+x);
        } catch (NumberFormatException e){
            // do nothing
        }
    }

    System.out.println(total);

これにより、数字以外の文字が省略されます。

于 2012-10-16T20:09:16.187 に答える