[UVa11549]Calculator Conundrum
题目大意:有一个只能显示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的更多相关文章
- uva---(11549)CALCULATOR CONUNDRUM
Problem C CALCULATOR CONUNDRUM Alice got a hold of an old calculator that can display n digits. She ...
- UVA 11549 CALCULATOR CONUNDRUM(Floyd判圈算法)
CALCULATOR CONUNDRUM Alice got a hold of an old calculator that can display n digits. She was bore ...
- 【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 ...
- Floyd判圈算法 UVA 11549 - Calculator Conundrum
题意:给定一个数k,每次计算k的平方,然后截取最高的n位,然后不断重复这两个步骤,问这样可以得到的最大的数是多少? Floyd判圈算法:这个算法用在循环问题中,例如这个题目中,在不断重复中,一定有一个 ...
- UVA 11549 Calculator Conundrum (Floyd判圈算法)
题意:有个老式计算器,每次只能记住一个数字的前n位.现在输入一个整数k,然后反复平方,一直做下去,能得到的最大数是多少.例如,n=1,k=6,那么一次显示:6,3,9,1... 思路:这个题一定会出现 ...
- Uva 11549 - Calculator Conundrum 找规律加map
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 【图论】Floyd消圈算法
毫无卵用的百度百科 Definition&Solution 对于一个给定的链表,如何判定它是否存在环以及环的长度问题,可以使用Floyd消圈算法求出. 从某种意义上来讲,带环的链表在本质上是一 ...
- [LeetCode] Basic Calculator II 基本计算器之二
Implement a basic calculator to evaluate a simple expression string. The expression string contains ...
- [LeetCode] Basic Calculator 基本计算器
Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...
随机推荐
- JavaScript中Number常用属性和方法
title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...
- vs2015汉化
VS2015汉化 VS2015安装打开后默认是英文的,将它改成中文的VS 1.安装下载好的语言包进行安装 2.正在安装 3.安装完成后关闭 4.打开VS2015默认不是中文的,点击Tools--> ...
- tml兼容性
于IE6下,不能识别我们的h5标签,解决办法 主动使用js创建header,footer等标签.--存在的问题,这种方法创建的元素,对于IE6来说,相当于自定义标签,而自定义标签属于 默认属于行内元素 ...
- 51nod 1435 位数阶乘 (手动计算)
题目: 1435 位数阶乘 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 X是一个n位数的正整数 (x=a0a1...an−1) ...
- Html表单提交到Servlet输出到页面乱码
Html使用的编码是UTF-8编码显示页面,之后使用form表单提交字段到Servlet中,Servlet将利用getParamer方法获得form提交的字段,之后通过Respone中的writer将 ...
- HDU 1175 连连看【BFS】
题意:给出起点和终点的棋子,不能经过别的棋子,而且转弯的次数不能超过2次,问能否消除 和逃离迷宫一样,每个节点记录下来它的当前的方向和转弯的次数,再搜 注意特判起点的棋子和终点的棋子为0或者不一样的情 ...
- mysql中如何查看某个数据库或表占用的磁盘空间
查整个库的状态:select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size, concat(tru ...
- csv 模块的基本使用
csv 模块专门用于读取和写入 csv 文件内容 以下主要讲在 python2 中的使用,在python3中有不同的地方,我会单独指出来 一般的excel表格可以保存为csv格式,然后就可以使用 cs ...
- You Probably Don’t Need a Message Queue
原文地址 I’m a minimalist, and I don’t like to complicate software too early and unnecessarily. And addi ...
- 图像切割—基于图的图像切割(Graph-Based Image Segmentation)
图像切割-基于图的图像切割(Graph-Based Image Segmentation) Reference: Efficient Graph-Based Image Segmentation ...