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. 你只是在想int。换个String思路。:) 这也将处理用户为您提供大量数字的数字的情况。
  2. 不过,您需要验证您的输入;如果有人输入“12abc3”怎么办?
  3. String.charAt(int)会有帮助的。
  4. Integer.parseInt(String)也会有所帮助。

你也可以看看 usinglong而不是int; long上限为 9,223,372,036,854,775,807。

于 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 回答