Создайте программу java, которая считывает целое число (ЧИСЛО) и определяет его обратное с помощью операторов деления и остатка / по модулю. Если последний di git равен нулю, замените его единицей (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);
}
}
В настоящее время проблема возникает при обращении числа, потому что он также заменяет последний di git числа, этого не должно происходить.
Ввод / вывод текущей программы
Введите число: 2300
замените: 2301
Реверс: 1132
Сумма цифры: 7