Uva 10591 - Happy Number

Problem C

Happy Number

Time Limit

1 Second

解题思路:WA了我一次,没看Sample直接敲了!!忽略了第一个要输入的Case数量

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<set>
 4 using namespace std;
 5 set<int>num;
 6 bool Traverse(int cur){
 7     int temp = cur, sum = 0;
 8     for(; temp != 0;){
 9         sum += (temp%10)*(temp%10);
10         temp /= 10;
11     }
12     if(sum == 1) return true;
13     else if(num.find(sum) == num.end()){
14         num.insert(sum);
15         return Traverse(sum);
16     }
17     else return false;
18 }
19 
20 int main(){
21     #ifndef ONLINE_JUDGE
22     freopen("input.txt", "r", stdin);
23     #endif
24     int n, T;
25     cin>>T;
26     for(int i=1; i<=T; ++i){
27         cin>>n;
28         num.clear();
29         num.insert(n);
30         if(Traverse(n)) cout<<"Case #"<<i<<": "<<n<<" is a Happy number."<<endl;
31         else cout<<"Case #"<<i<<": "<<n<<" is an Unhappy number."<<endl;
32     }
33     return 0;
34 }

 

转载于:https://www.cnblogs.com/liaoguifa/archive/2013/05/14/3077989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值