HDU 5752 Sqrt Bo
2016-07-27 20:35
309 查看
#include <iostream> #include <sstream> #include <cmath> #include <algorithm> #include <string.h> using namespace std; string s; int main(){ while(cin>>s){ if(s.length()>10){ cout<<"TAT"<<endl; continue; } stringstream ss; long long n; ss<<s; ss>>n; if(n>=pow(2,32)){ //= cout<<"TAT"<<endl; continue; } if(n==0){ cout<<"TAT"<<endl; continue; } if(n==1){ cout<<"0"<<endl; continue; } int t=0; while(true){ if((int)(sqrt(n))==1){ t++; break; } n=sqrt(n); t++; } cout<<t<<endl; } }
f(n)=1 n<2^2;
f2(n)=1 n<2^4;
f3(n)=1 n<2^8;
f4(n)=1 n<2^16;
f5(n)=1 n<2^32;
2^32大约是10位数,所以大于10位数就输出“TAT”;
把字符串转换为long long 类型整数 因为int可能会溢出;
考虑n=0 n=1时特殊情况 然后暴力开方输出即可;
注意循环判定;
相关文章推荐
- TortoiseSVN菜单项功能说明
- Leetcode 229. Majority Element II (Medium) (cpp)
- 20145202 《Java程序设计》第四周学习总结
- __bridge的相关使用
- python pandas 将行合并
- UVA 539 The Settlers of Catan
- linux 任务计划
- 新手学Linux命令之history
- XSS——突破注释
- 【每周至少一篇 160727】简单的选择问题(select problem)_Java
- 最近公共祖先lca离线
- 整数划分DP
- linux基础(6)-shell编程
- HDU3861
- java基础primitive 类型
- EasyUI 菜单与按钮
- NKOI 2375 建筑抢修
- HDU 3366 Passage
- ExecutorService创建多线程步骤
- 连接存储服务器