创建一个读取整数 (NUM) 的 java 程序,并使用除法和余数/模运算符确定它的倒数。如果最后一位数字为零,则在反转数字之前将其替换为一 (1)。还输出所有数字的总和。
import java.util.*;
public class Main {
static int replace(int number){
if (number == 0)
return 0;
int digit = number % 10;
if (digit == 0)
digit = 1;
return (number/10) * 10 + digit;
}
static int Convert(int number){
if (number == 0)
return 0;
else
return replace(number);
}
public static void main(String[] args) {
int number;
Scanner kb = new Scanner(System.in);
System.out.print("Enter the number : ");
number = kb.nextInt();
System.out.println("replace:"+replace(number));
int a, m = 0, sum = 0;
do{
a = replace(number) % 10;
m = m * 10 + a;
sum = sum + a;
number = replace(number) / 10;
}
while( replace(number) > 0);
System.out.println("Reverse:"+m);
System.out.println("Sum of digits:"+sum);
}
}
目前问题发生在反转数字,因为它也替换了数字的最后一位,这不应该发生。
当前程序的输入/输出
输入号码:2300
替换:2301
反面:1132
数字总和:7
