uva10591Happy Number

来源:互联网 发布:广州知用中学校服 编辑:程序博客网 时间:2024/05/10 02:52

暴简单的一道题,不过我还是wa了一次,提交的太急了。。

也用不上哈希,除了第一个数字外其他数字都小于等于81*9=729,开个1000的数组存储就行了。

wa在处理1时会误判为unhappy,把条件语句换下位置就解决了

#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char vis[1000];int main(){    int n,i,j,in,help;    scanf("%d",&n);    for(i=1;i<=n;i++)    {        memset(vis,0,1000);        scanf("%d",&in);        help=in;        while(1)        {            j=0;            while(help>=1)            {                j+=(help%10)*(help%10);                help/=10;            }            if(j==1)            {                printf("Case #%d: %d is a Happy number.\n",i,in);                break;            }            if(j==in||vis[j])            {                printf("Case #%d: %d is an Unhappy number.\n",i,in);                break;            }            else if(j!=1)            {                vis[j]=1;                help=j;            }        }    }    return 0;}


0 0
原创粉丝点击