Этот вопрос был задан здесь & здесь , но ни один из них не работал для меня. Те, которые содержали br.readLine() or scn.nextInt()
в цикле; мой нет.
Следующий код проверяет номера Армстронга:
import java.io.*;
class Armstrong {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s;
int val, sum = 0, sav, dig, len;
System.out.print("Enter a number: ");
s = br.readLine();
val = Integer.parseInt(s);
len = s.length();
sav = val;
while(val > 0) {
dig = val % 10;
sum += Math.pow(dig, len); //Math class comes under java.lang
}
if(sum == sav) {
System.out.println(sum+" is an Armstrong Number");
} else {
System.out.println(sum+" is NOT an Armstrong Number");
}
}
}
Что я пробовал:
1. ^ Z, ^ C (убивает программу)
2. Используйте readLine (), nextInt (), next () и т. Д. Безрезультатно
3. Используется онлайн GDB компилятор - тот же результат.
Вот как выглядит результат:
Не останавливается ...!
OpenJDK-8