-4

这是我的程序:

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");
        }
    }
}
4

2 回答 2

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;
    }
于 2013-08-22T10:02:17.927 回答
1

while(temp==0)

如果temp不为零,则永远不会执行。

你可能想做:

while(temp > 0)


有时可以挽救您生命的提示:使用调试器。

于 2013-08-22T10:01:54.513 回答