Java程序检查是否有Armstrong数

时间:2020-01-09 10:35:33  来源:igfitidea点击:

在这篇文章中,我们将看到一个Java程序来检查所传递的号码是否是Armstrong号码。如果数字等于我们将数字的每一位提高到该数字的位次幂并将其相加而得到的数字,则该数字就是阿姆斯特朗数字。

阿姆斯壮数字示例

371 = 33 + 73 + 13 = 27 + 343 +1 = 371

此处的位数是3,因此每个位数都会提高到3的幂并加。由于计算得出的数字等于原始数字,因此371是阿姆斯特朗数字。

1634 = 14 + 6 4 + 34 + 44 = 1 + 1296 + 81 + 256 = 1634

Java代码检查是否有阿姆斯特朗号

import java.util.Scanner;

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

    System.out.println("Is " + number + " an Armstrong number- " + checkIfArmstrong(number));
    sc.close();
  }
	
  private static boolean checkIfArmstrong(int number){
    // Converting to string and calculating length
    int numLength = (number+"").length();
    int temp = number;
    int sum = 0;
    while(temp != 0 ){
      int remainder = temp % 10;
      sum = sum + (int)Math.pow(remainder, numLength);
      temp = temp/10;
    }
    if(number == sum){
      return true;
    }else{
      return false;
    }	
  }
}

输出:

Please enter a number : 
371
Is 371 an Armstrong number- true

Please enter a number : 
1634
Is 1634 an Armstrong number- true

Please enter a number : 
373
Is 373 an Armstrong number- false