Код: Выделить всё
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Input a non zero integer between 1 and 214783647: ");
int num = scan.nextInt();
int length = (int)(Math.log10(num));
double mod = Math.pow(10, length);
int digit;
int prevdigit = 0;
while (mod >= 10) {
digit = num;
digit %= mod;
digit = num - digit - prevdigit;
prevdigit += digit;
digit /= mod;
mod /= 10;
System.out.println((int)digit);
}
if (mod == 1) {
digit = num;
digit %= 10;
System.out.println((int)(digit));
}
}
}
Я понятия не имею, в чем дело, но я предположил, что это связано с проблемами с точностью значений в переменной Prevdigit, для которой требуется E, но я не уверен.
>
И тогда я буквально понятия не имею, как это можно использовать и для десятичных значений, но если кто-нибудь укажет мне правильное направление, я буду признателен.
Подробнее здесь: https://stackoverflow.com/questions/793 ... teger-valu
Мобильная версия