已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
昨天关门了。
Improve this question
import java.util.*;
public class armstrongNumber {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("enter no of digits");
int d=sc.nextInt();
System.out.println("enter NUmber");
int num=sc.nextInt();int s;int res=0;
while(num>0)
{
s=num%10;
res=res+s*s*s;
num=num/10;
}
System.out.println(res);
if(res==num)
{
System.out.println("armstrong Number");
}
else
{
System.out.println("not armstrong Number");
}
}
}
enter no of digits
3
enter NUmber
153
153
not armstrong Number
2条答案
按热度按时间6l7fqoea1#
while
循环修改用户输入的数字:在循环结束时,
num
为零,不能与res
相同。您的算法需要
num
的临时副本:注意,Java有复合赋值运算符,你可以在这里使用:
mpgws1up2#
原因是您正在检查
res == num
。但是在while循环中,您还执行num = num / 10
。所以num
的值一直在变化。要纠正它,在进入while循环之前,请将num的值存储到一个临时变量中,并在while循环中使用它。
示例代码段: