bool IsAutoMorphicNum(unsigned int num)
{
unsigned long long int pow = (unsigned long long int )num*num;
while(num)
{
if(num%10 != pow%10)
return false;
num /= 10, pow/= 10;
}
return true;
}
最主要的是这一句:
unsigned long long int pow = (unsigned long long int )num*num;
我刚开始写成这样都不行:
unsigned long long int pow = num*num;
经测试:
unsinged int范围内的自守数只有19个,0,1,5,6,25,76,376,625,9376,90625,109376,890625,2890625,7109376,12890625,87109376,212890625,787109376,1787109376