问题描述:阿姆斯壮数(armstrongnumber) 是等于其数字的立方数之和的数字,例如:0,1
,153
,370
,371
,407
等
程序要求输入一个正整数或者0,检查输入的数是否为阿姆斯壮数。
输入格式:
一个正整数n。
输出格式:
是阿姆斯壮数则输出”Armstrong number”,如不是则输出”Not Armstrong number”。
样例输入:
153
样例输出:
Armstrong number
实现代码:
import java.util.*;
public class amszs {
//建议这类题目约定好数字的长度要求,不然会产生求解的误差
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int n=0;
n=input.nextInt();
System.out.println(isArmstrongnumber(n));
}
public static String isArmstrongnumber(int a) {
int k[]= new int[10];//创建长度为10的数组用于记录拆解出来的数字
int i=0;
int replace=a;//替代a作为处理的数据
int sum=0;//计算最终的结果
for(;;i++) {
if(replace>=1) {
k[i]=replace%10;//拆解每一个数出来
replace=replace/10;//跟着除以10
}
if(replace<1)
break;//拆解完就跳出循环
}
for(int g=0;g<i+1;g++) {
sum=sum+k[g]*k[g]*k[g];//计算结果
}
if(sum==a)//进行比对,产生结果
return "Armstrong number";
else
return "Not Armstrong number";
}
}