UVa 10591 - Happy Number

来源:互联网 发布:java时间戳计算时间差 编辑:程序博客网 时间:2024/05/17 02:15

传送门UVa 10591 - Happy Number


挺水的一题,之前想复杂了,先把数字变成字符串,再哈希。。。再输入到字符串数组里。。。。。


后来一想这数字直接映射就可以了。。。

然后我果断把Unhappy敲成了Unappy,领了好几发WA。。这个教训告诉我以后一定要复制过来,亏我敲的时候还想这么简单的单词我不可能拼错吧。。。


#include <cstdio>#include <cstring>using namespace std;int head[1000];int main(){//freopen("input.txt", "r", stdin);int T, i, j, sum, num, ori, cases = 1;scanf("%d", &T);while (T--){memset(head, 0, sizeof(head));scanf("%d", &num);ori = num;while (true){sum = 0;while (num){int temp = num % 10;sum += temp * temp;num /= 10;}if (sum == 1){printf("Case #%d: %d is a Happy number.\n", cases++, ori);break;}else if (head[sum] || sum == ori){printf("Case #%d: %d is an Unhappy number.\n", cases++, ori);break;}head[sum] = 1;num = sum;}}return 0;}




0 0
原创粉丝点击