gpt4 book ai didi

java - 检查一个数字是否是阿姆斯特朗数 java

转载 作者:行者123 更新时间:2023-11-30 07:54:10 30 4
gpt4 key购买 nike

 public static void main(String[] args) {
System.out.print("Please enter a number:"+" ");
Scanner scan= new Scanner(System.in);
long number=scan.nextLong();
String num=String.valueOf(number); // simple way to get the number of digits in a number
long sum=0;
for(int i=0;i<num.length();i++)
{

sum+=Math.pow(num.charAt(i), num.length());

}

if(sum==number)
{
System.out.print(number+" "+"is an armstrong number");
}
else
{
System.out.print(number+" "+"is not an armstrong number");
}
}

我需要知道这段代码有什么问题,求和线不能正常工作。例如,如果我输入数字 371(Armstrong 数字),总和的输出假设为 371,但根据我的代码出现的输出为 416675371

最佳答案

目前,您正在对从 num.charAt(i) 返回的字符的 ASCII 代码而不是数字本身应用 Math#pow。然后检索数字本身而不是 ASCII 表示使用 Character.getNumericValue(num.charAt(i)) 而不是 num.charAt(i)

关于java - 检查一个数字是否是阿姆斯特朗数 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44251006/

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