这是我的计划:
import java.io.*;
public class armstrongno {
int num;
int sum;
int cube;
int dig;
int temp;
public void method() throws IOException {
dig = 0;
cube = 0;
sum = 0;
num = 0;
temp = 0;
BufferedReader obj = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter number");
num = Integer.parseInt(obj.readLine());
temp = num;
while (temp == 0) {
dig = temp % 10;
cube = dig * dig * dig;
sum = sum + cube;
temp = temp / 10;
}
if (sum == num) {
System.out.println("Armstrong number");
} else {
System.out.println("Not an Armstrong number");
}
}
}
答案 0 :(得分:2)
while(temp==0)// this will execute when temp=0 else never execute.
{
dig=temp%10;
cube=dig*dig*dig;
sum=sum+cube;
temp=temp/10;
}
所以永远不要进入if(sum==num)
。所以你得到的是else
部分。
按如下方式更改您的代码。
while (temp > 0) {
dig = temp % 10;
cube = dig * dig * dig;
sum = sum + cube;
temp = temp / 10;
}
答案 1 :(得分:1)
while(temp==0)
如果temp
不为零,则永远不会执行。
您可能想要这样做:
while(temp > 0)
有时可以挽救生命的提示:使用调试器。