HDU5752-Sqrt Bo
Sqrt Bo
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 2222 Accepted Submission(s): 883
.
Bo wanted to know the minimum number y
which satisfies fy(n)=1
.
note:f1(n)=f(n),fy(n)=f(fy-1(n))
It is a pity that Bo can only use 1 unit of time to calculate this function each time.
And Bo is impatient, he cannot stand waiting for longer than 5 units of time.
So Bo wants to know if he can solve this problem in 5 units of time.
).
Each test case contains a non-negative integer n(n<10100)
.
or a string "TAT" - Bo can't solve this problem.
题意就是一个数最多开5次根号,能否变成1,输出开根号的次数,如果不存在或者超过5次就输出TAT
2*2=4,4*4=16,16*16=256,256*256=65536;65536*65536=4294967296,所以4294967296为极值了,直接与这个数比较就可以,
当然也可以和4013729316这个数比较,这个数连开5次根号,为1.999577。。。
因为数比较大,所以用数组存大数。
先判断一下,如果数的位数大于10位,肯定TAT,再将数组里的数变成我们要求的大数,再判断是否<极值数,然后再开根号,记录次数就可以了。
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e7+;
typedef long long ll;
char a[N];
int main(){
int len,ans;
ll num,cnt;
while(~scanf("%s",a)){
len=strlen(a);
if(len>)
printf("TAT\n");
else{
num=;
for(int i=;i<len;i++){ //将数组里的数变成要求的数
num=num*+a[i]-'';
}
if(num>=||num==)
printf("TAT\n");
else{
ans=;
while(num!=){
num=(ll)sqrt(num*1.0); //因为向下取整,所以强制转换一下
ans++;
}
printf("%d\n",ans);
}
}
}
return ;
}
HDU5752-Sqrt Bo的更多相关文章
- hdu 5752 Sqrt Bo
Sqrt Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total S ...
- HDU 5752 Sqrt Bo (数论)
Sqrt Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 Description Let's define the function f ...
- HDU 5752 Sqrt Bo【枚举,大水题】
Sqrt Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total S ...
- hdu 5752 Sqrt Bo 水题
Sqrt Bo 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 Description Let's define the function f ...
- 【模拟】HDU 5752 Sqrt Bo
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5752 题目大意: 定义f(n)=⌊√n⌋,fy(n)=f(fy-1(n)),求y使得fy(n)=1. ...
- HDU 5752 Sqrt Bo (思维题) 2016杭电多校联合第三场
题目:传送门. 题意:一个很大的数n,最多开5次根号,问开几次根号可以得到1,如果5次还不能得到1就输出TAT. 题解:打表题,x1=1,x2=(x1+1)*(x1+1)-1,以此类推.x5是不超过l ...
- Sqrt Bo (水题)
#include<bits/stdc++.h> using namespace std; ], comp; ]; int main(){ arr[] = 1LL; ; i < ; i ...
- HDU 5752Sqrt Bo
Sqrt Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total S ...
- 2016 Multi-University Training Contest 3
5/11 2016 Multi-University Training Contest 3官方题解 2016年多校训练第三场 老年选手历险记 暴力 A Sqrt Bo(CYD) 题意:问进行多少次开根 ...
随机推荐
- 深入理解java虚拟机_前言
2.JVM虚拟机 2.1 概述 java获得广泛认可主要是因为: (1) java是一门结构严谨.面向对象的编程语言; (2) java摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想; ...
- Missing number in array
Given an array of size n-1 and given that there are numbers from 1 to n with one missing, the missin ...
- Netty-Websocket 根据URL路由,分发机制的实现
最近在做netty整合websocket,发现网上很多项目都是最简单的demo,单例的一个项目. 然而公司的项目需要接受几个不同功能的ws协议消息,因此最好是用URL来区分,让页面上采用不同的链接方式 ...
- 使用sed,grep 批量修改文件内容
使用sed命令可以进行字符串的批量替换操作,以节省大量的时间及人力: 使用的格式如下: sed -i "s/oldstring/newstring/g" `grep oldstri ...
- Xamarin.Android中实现延迟跳转
http://blog.csdn.net/candlewu/article/details/52953228 方法一: 使用Handler().PostDelayed 延迟启动 new Handler ...
- ORA-00600[17059]错误
ORA-00600[17059] ORA-00600[17059]错误大部分都是因为高版本导致,对于本库的分析:因为该库的 shared pool老化比较频繁,到我介入的时候,发现相关该类此sql已经 ...
- VMware虚拟机下为Ubuntu添加磁盘
20G的磁盘还是不够用啊,正好复习下磁盘分区和逻辑卷. 关闭虚拟机,打开VMware,右键虚拟机点击设置,点下下方的添加,就可以添加磁盘了. 进入虚拟机,查看: root@ubuntu:/# fdis ...
- 用AndroidStudio发布Libs到Bintray jCenter
1 RootProject[根目录]build.gradle中添加如下插件引用 dependencies { ....... classpath 'com.jfrog.bintray.gradle:g ...
- html5 storage事件
HTML5 虽然很多年了,但是真的了解不不够不够.主题说的是 storage时间,说起对 storage 事件的了解还是从 QQ音乐 说起. QQ音乐的主页是 https://y.qq.com , 而 ...
- Yarn篇--搭建yran集群
一.前述 有了上次hadoop集群的搭建,搭建yarn就简单多了.废话不多说,直接来 二.规划 三.配置如下 yarn-site.xml配置 <property> <n ...