public boolean is(int num){ //定义一个方法
int count=(num+"").length(); //把num转换成String型,在算出他的字符长度,赋予count
int num1=num; //把num的值备份num1
int sum=0; //定义一个变量,来储存结果
while(num>0){ //循环大于0的值
int b=1; //定义一个次幂
int a=num%10; //求出他的个位数
for(int i=1;i<=count;i++){ //循环他的字符长度
b*=a; /*这里的循环是
第一次循环:
b=1 然后b*a=1*a
第二次循环:
b这个时候就等于a了 b*a=a*a
第三次循环:
b就等于a*a b*a=a*a*a
*/
}
sum+=b; //这里是把sum的值加上b的值
num/=10; //这里是num的值除以10 因为是整型所以没有小数点后的数 所以例如是百位的数循环完这个就是十位的数了
}
if(sum==num1){ //判断结果是不是之前备份的数
return true; //如果是的话就是正确的
}
return false;
}
原文地址:https://www.cnblogs.com/skjy/p/9160262.html