gpt4 book ai didi

java - 如何克服 Scanner 中 armstrongnumber 计算中的错误匹配异常?

转载 作者:行者123 更新时间:2023-11-30 06:12:41 25 4
gpt4 key购买 nike

我编写了以下代码,具有以下条件。我不允许使用任何 String 或 Math 类,因此我使用 for 循环来分解数字。

它适用于例如 153 和 54883,但对于像 4679307774 这样的数字,扫描仪类型会返回 misMatchExeption。我确实明白为什么,我尝试使用长类型,程序可以运行,但不会(由于 Two`s)返回正确的答案。

我想知道如何解决这个问题,或者更好地说我可以在这里尝试其他什么事情。

Scanner sc = new Scanner(System.in);

System.out.println("Please enter any Integer above zero here : ");
System.out.println("Enter length of number, from 1 onwards: ");

int num = sc.nextInt();
int pow = sc.nextInt();

int narziss = 0; // TODO mismatchexeption
int single;
int a;

do {
a = 1;
single = num % 10; // takes each chiffre from behind, for as long as for runs.
System.out.println("single modulo : " + single);
num = num / 10;

for (int i = 0; i < pow; i++) {

a *= single;
System.out.println(a);
}
narziss += a;
System.out.println("narziss: " + narziss);

} while (num != 0);

System.out.println(" if the last shown number, " +
"is the same as you have typed in, " +
"you found an so-called armstrong number! ");
}
}

最佳答案

我问的问题可以用整数以外的类型来解决。例如,长整型或浮点类型。

确保更改或类型转换所有涉及的部件,例如扫描仪、循环等。

关于java - 如何克服 Scanner 中 armstrongnumber 计算中的错误匹配异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com