#include<cstdio>
#include<set>
using namespace std;
set<int>vis;
int main()
{
//freopen("in.txt","r",stdin);
int cas,num,sum,flag,nn;
scanf("%d",&cas);
for(int i=1; i<=cas; i++)
{
scanf("%d",&num);
sum=0;
nn=num;
vis.clear();
flag=0;
while(1)
{
sum=0;
while(num)
{
sum+=(num%10)*(num%10);
num/=10;
}
if(sum==1)
{
flag=2;
break;
}
if(vis.count(sum))
{
flag=1;
break;
}
else vis.insert(sum);
num=sum;
}
printf("Case #%d: ",i);
if(flag==1)
printf("%d is an Unhappy number.\n",nn);
else printf("%d is a Happy number.\n",nn);
}
return 0;
}
关键就是用了一个容器类存储出现的情况。
UVA 10591 - Happy Number
最新推荐文章于 2014-11-08 20:08:08 发布