这是我找到阿姆斯特朗号码的计划

时间:2017-04-29 13:49:19

标签: java

package armstrong;

import java.util.Scanner;

public class armstrong {
    static int tr;
    static double tri=0;


    public static void main(String[] args) {
        System.out.println("enter a number");
         int s;
        Scanner sc = new Scanner(System.in);
        s=sc.nextInt();
        int b=s;


        do
        {   
            tr=s%10;
            tri=tri+Math.pow(tr,3);
            s=s/10;


        }
        while(s!=0);
            if(tri==b)
            System.out.println("the number is armstrong");
            else
                System.out.println("not armstrong");

    }

}

这里我介绍了一个变量' b'因为' s'将在do while循环期间进行修改。 有什么方法可以使用' s而不是将值存储到另一个变量

2 个答案:

答案 0 :(得分:0)

您可以使用此程序获取Armstrong号码:

import java.util.Scanner;

class ArmstrongNumberChecker {
    public static void main(String[] args) {
        int c = 0, a, temp,n;
        System.out.print("enter a number:");
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        temp = n;
        while (n > 0) {
            a = n % 10;
            n = n / 10;
            c = c + (a * a * a);
        }
        if (temp == c) {
            System.out.println("armstrong number");
        } else{
            System.out.println("Not armstrong number");
        }
    }
}

答案 1 :(得分:0)

是的。 执行以下操作:

tr = s;

do
{   
    tri=tri+Math.pow(tr%10,3);
    tr=tr/10;
}
while(tr!=0);

然后,

if(tri==s)
    System.out.println("the number is armstrong");
else
    System.out.println("not armstrong");

注意,我直接在计算中使用了tr%10