有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

我的查找阿姆斯特朗号码的java程序不起作用

以下是我的节目:

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

共 (2) 个答案

  1. # 1 楼答案

    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;
    } 
    

    所以千万不要进去。所以你得到了else部分的输出

    按如下方式更改代码

    while (temp > 0) {
            dig = temp % 10;
            cube = dig * dig * dig;
            sum = sum + cube;
            temp = temp / 10;
        }
    
  2. # 2 楼答案

    while(temp==0)

    如果temp不为零,这将永远不会执行

    你可能想做:

    while(temp > 0)


    有时可以挽救你生命的一个技巧:使用调试器