0

おはようございます。レッスン 4 に進んでいますが、ループの使用に少し問題があります。文字列を使用して解決したのを見たことがありますが、ループを把握しようとしています。

問題の理由は、両方の答えを表示する必要があるためです: 整数を個体番号に分割した例: 567 = 5 6 7

そして 567 = 18

整数を加算することはできますが、最初に整数を分離してから個々の数値を加算する方法がわかりません。0 になるには割る必要があると考えています。たとえば、5 桁の数字 /10000、/1000、/100、/10、/1 の場合

しかし、ユーザーが 6 桁、7 桁、さらには 8 桁の数字を使用したい場合はどうすればよいでしょうか?

また、これが最初である必要があり、次に個々の整数の加算が行われると思いますか?

ガイダンスをありがとう:

import java.util.Scanner;

public class spacing {

      public static void main(String[] args) {

            Scanner in = new Scanner(System.in);

            int n;

            System.out.print("Enter a your number: ");

            n = in.nextInt();   

                  int sum = 0;          

                  while (n != 0) {

                        sum += n % 10;

                        n /= 10;

                  }
                  System.out.println("Sum: " + sum);

        }
}
4

2 に答える 2

5

これは教訓なので、完全な解決策は示しませんが、いくつかのヒントを示します。

  1. で考えているだけですintString代わりに考えてください。:) これは、ユーザーが桁数の多い数字を提供する場合にも対処します。
  2. ただし、入力を検証する必要があります。誰かが「12abc3」と入力するとどうなりますか?
  3. String.charAt(int)役に立ちます。
  4. Integer.parseInt(String)も役立ちます。

;longの代わりに使用することもできます。ただし、上限は 9,223,372,036,854,775,807 です。intlong

于 2012-05-25T15:51:03.320 に答える
0
//I assume that the input is a string which contains only digits
public static int parseString(String input)
{
    char[] charArray = input.toCharArray();
    int sum = 0;
    for (int index = 0; index < input.length; index++)
    {
        sum += Integer.parseInt(charArray[index] + "");
    }
    return sum;
}

上記の関数を使用し、入力を関数に渡し、出力を好きなように使用します。

于 2012-05-25T16:22:10.857 に答える