题目大意:有一个只能显示n位数字的计算器,当溢出时只显示最高的n位。

输入k,要你不断平方,问你计算器显示的最大数是多少。

解题思路:这题的示数肯定会循环,那么我们关键就是找什么时候循环了。

可以用Floyd判圈法。

假设两个人在无限长的跑道上赛跑,一个人的速度是另一个的两倍,那么跑得快的永远在前面。

但是如果把跑道变成一个有限长的环,那么在某个时刻,速度快的一定会追上速度慢的。

我们也用这种方法,一个变量每次平方一遍,另一个平方两遍。当两个变量相等时说明循环了。

注意我们要记录的是最大答案,要在每次平方两遍的那个变量每次更新时都比较一遍(因为第一个变量可能跑不完一整个循环就被追上了)。

还有乘法中间过程会爆int,要用long long。

C++ Code:

#include<cstdio>
long long t1,t2;
const long long base[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,k,ans;
scanf("%d%d",&n,&k);
t1=t2=ans=k;
do{
t1=t1*t1;
while(t1>=base[n])t1/=10;
t2=t2*t2;
while(t2>=base[n])t2/=10;
if(ans<t2)ans=t2;
t2=t2*t2;
while(t2>=base[n])t2/=10;
if(ans<t2)ans=t2;
}while(t1!=t2);
printf("%d\n",ans);
}
return 0;
}

[UVa11549]Calculator Conundrum的更多相关文章

  1. uva---(11549)CALCULATOR CONUNDRUM

    Problem C CALCULATOR CONUNDRUM Alice got a hold of an old calculator that can display n digits. She ...

  2. UVA 11549 CALCULATOR CONUNDRUM(Floyd判圈算法)

    CALCULATOR CONUNDRUM   Alice got a hold of an old calculator that can display n digits. She was bore ...

  3. 【set&&sstream||floyed判环算法】【UVa 11549】Calculator Conundrum

    CALCULATOR CONUNDRUM Alice got a hold of an old calculator that can display n digits. She was bored ...

  4. Floyd判圈算法 UVA 11549 - Calculator Conundrum

    题意:给定一个数k,每次计算k的平方,然后截取最高的n位,然后不断重复这两个步骤,问这样可以得到的最大的数是多少? Floyd判圈算法:这个算法用在循环问题中,例如这个题目中,在不断重复中,一定有一个 ...

  5. UVA 11549 Calculator Conundrum (Floyd判圈算法)

    题意:有个老式计算器,每次只能记住一个数字的前n位.现在输入一个整数k,然后反复平方,一直做下去,能得到的最大数是多少.例如,n=1,k=6,那么一次显示:6,3,9,1... 思路:这个题一定会出现 ...

  6. Uva 11549 - Calculator Conundrum 找规律加map

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  7. 【图论】Floyd消圈算法

    毫无卵用的百度百科 Definition&Solution 对于一个给定的链表,如何判定它是否存在环以及环的长度问题,可以使用Floyd消圈算法求出. 从某种意义上来讲,带环的链表在本质上是一 ...

  8. [LeetCode] Basic Calculator II 基本计算器之二

    Implement a basic calculator to evaluate a simple expression string. The expression string contains ...

  9. [LeetCode] Basic Calculator 基本计算器

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

随机推荐

  1. asp.net mvc5 文件下载上传

    下载:是通过点击a标签直接下载的方式,没有其他任何要求,在服务器上存在实体文件,不需要请求后台控制层 前段js: <a id="NF-DownLoad" authorize= ...

  2. github上下载开源项目

    1.首先获取到设置信息 2.找到克隆的路径(本步骤不包含下载.zip的方法) 3.打开 Git Shell ->输入: cd ../../ ->输入: cd  想要安装的路径 ->输 ...

  3. TypeError: Cannot use 'in' operator to search for 'length' in....

    前台页面读取商品属性是字符串形式,数据库中存储商品属性是集合形式,前台数据存入数据库中数据格式会自动转,后台数据回显到前台数据格式需要手动转换,否则会报异常 错误信息提示:

  4. 洛谷 P1967 货车运输 LCA + 最小生成树

    两点之间边权最大值的最小值一定在图的最小生成树中取到. 求出最小生成树,进行倍增即可. Code: #include<cstdio> #include<algorithm> u ...

  5. Java中hashCode与equal方法详解

    转载自http://blog.csdn.net/jiangwei0910410003/article/details/22739953 Java中的equals方法和hashCode方法是Object ...

  6. 解决new Date的值为Invalid Date、NaN-NaN的问题

    错误代码: let timespan = 1515239514230; let dateTime = new Date(timespan); console.log(dateTime) // 返回 I ...

  7. HashMap和Hashtable的区别。

    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable ...

  8. 小巧的ssh客户端

    所用到的知识点 os 模块 文件操作 循环 字符串操作 字典 #!/use/bin/python #coding=utf8 import os print '\033[1;32;40m welcome ...

  9. [terry笔记]oracle里的执行计划-查看

    内容主要来自看书学习的笔记,如下记录了常见查询执行计划的方法. 2.2 如何查看执行计划 1.explain plan 2.dbms_xplan包 3.autotrace 4.10046事件 5.10 ...

  10. Cannot set web app root system property when WAR file is not expanded

    Cannot set web app root system property when WAR file is not expanded 在tomcat下面可以,在weblogic下面不行的处理方法 ...