私のプログラムでは、ユーザーが 5 桁の数字を入力する必要があります。その 5 桁の整数を取得してすべての数字を加算する方法が必要です。たとえば、ユーザーが 26506 を入力すると、プログラムは 2+6+5+0+6 を実行して 19 を返します。これはある種のループによって行われると思いますが、どこから始めればよいかわかりません。
明確にするために、この整数は何でもかまいませんが、5 桁である必要があります。
私の頭の上から、それを文字列に変換し、各文字を反復処理して、値を ( charAt( position ) - '0' ) で累積することができます。私は今Javaコンパイラから離れていますが、これはうまくいくはずです。数値データのみを持っていることを確認してください。
int sum = 0;
while(input > 0){
sum += input % 10;
input = input / 10;
}
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)
入力が文字列の場合:
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);
プラグインします。
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.
これには 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;
}
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);
これにより、数字以外の文字が省略されます。