1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import java.util.*; import java.math.*;
//寻找阿姆斯特朗数 public class LookforNumber {
public Scanner scanner = new Scanner(System.in);
public static void main(String[] args){ LookforNumber ln = new LookforNumber(); ln.number(); }
public void number(){//计算三位,四位,五位的阿姆斯特朗数 System.out.println("这是在求阿姆斯特朗数(n=3时,为水仙花数):"); System.out.println("请输入要求数的位数:"); int n = scanner.nextInt(); int a=0,b=0,c=0,d=0,e=0; int x = (int)Math.pow(10,n-1); int y = (int)Math.pow(10,n); for(;x<y;x++){ for(int z=1;z<=n;z++){ switch(z){ case 1 : a = x/(int)Math.pow(10,n-z);break; case 2 : b = x/(int)Math.pow(10,n-z)%10;break; case 3 : c = x/(int)Math.pow(10,n-z)%10;break; case 4 : d = x/(int)Math.pow(10,n-z)%10;break; case 5 : e = x/(int)Math.pow(10,n-z)%10;break; default : break; } } if(x == (int)Math.pow(a,n)+(int)Math.pow(b,n)+(int)Math.pow(c,n) +(int)Math.pow(d,n)+(int)Math.pow(e,n)){ System.out.print(x + " "); } } System.out.println(); System.out.println("上述都是阿姆斯特朗数。"); } }
|