UVA 11549 - Calculator Conundrum Floyd判圈法
来源:互联网 发布:阿里云客服报名关闭 编辑:程序博客网 时间:2024/05/20 04:30
Problem C
CALCULATOR CONUNDRUM
Alice got a hold of an old calculator that can displayn digits. She was bored enough to come up with the following time waster.
She enters a numberk then repeatedly squares it until the result overflows. When the result overflows, only then most significant digits are displayed on the screen and an error flag appears. Alice can clear the error and continue squaring the displayed number. She got bored by this soon enough, but wondered:
“Givenn and k, what is the largest number I can get by wasting time in this manner?”
Program Input
The first line of the input contains an integer t (1 ≤ t ≤ 200), the number of test cases. Each test case contains two integersn (1 ≤ n ≤ 9) and k (0 ≤ k < 10n) wheren is the number of digits this calculator can display k is the starting number.
Program Output
For each test case, print the maximum number that Alice can get by repeatedly squaring the starting number as described.
Sample Input & Output
INPUT
21 62 99
OUTPUT999
Calgary Collegiate Programming Contest 2008
Floyd判圈法
#include <cstdio>#include <iostream>#include <vector>#include <algorithm>#include <string>#include <cstring>#include <map>#include <cmath>#include <string>#include <queue>#include <set>using namespace std;#ifdef WINtypedef __int64 LL;#define iform "%I64d"#define oform "%I64d\n"#elsetypedef long long LL;#define iform "%lld"#define oform "%lld\n"#endifconst int INF = 0x3f3f3f3f;const int maxn = 100 + 10;int buf[20], bi;int next(int n, int k) {LL t = (LL) k * k;bi = 0;while(t) {buf[bi++] = t % 10;t /= 10;}int res = 0;for(int i=bi-1; i>=max(0, bi-n); i--) {res = res * 10 + buf[i];}return res;}int main() {int T;scanf("%d", &T);while(T--) {int n, k;scanf("%d%d", &n, &k);int ans = k;int k1=k, k2=k;do {k1 = next(n, k1);k2 = next(n, k2); if(k2 > ans) ans = k2;k2 = next(n, k2); if(k2 > ans) ans = k2;} while(k1 != k2);printf("%d\n", ans);}return 0;}
- uva 11549 - Calculator Conundrum (Floyd判圈法)
- UVA 11549 - Calculator Conundrum Floyd判圈法
- Uva 11549 CALCULATOR CONUNDRUM (floyd 判圈法)
- UVa 11549 - Calculator Conundrum(Floyd判圈法)
- uva 11549 Calculator Conundrum(Floyd 判圈法 和 stringstream的应用)
- UVA 11549 Calculator Conundrum Floyd判圈
- UVA 11549-Calculator Conundrum-floyd判重
- Uva-11549 - Calculator Conundrum
- UVA 11549 Calculator Conundrum
- Uva-11549-Calculator Conundrum
- uva 11549 - Calculator Conundrum
- UVA 11549 Calculator Conundrum
- uva 11549 CALCULATOR CONUNDRUM
- UVA 11549 Calculator Conundrum
- UVa 11549 - Calculator Conundrum
- UVA 11549 Calculator Conundrum
- UVA 11549 Calculator Conundrum
- UVA - 11549 Calculator Conundrum
- 郑伊健取笑陈小春普通话 “古惑仔”再齐聚
- 自己写的个C#(ASP.NET)连接SQL数据库执行查询和修改操作的类
- fatal error LNK1103: 调试信息损坏;请重新编译模块
- 数据库管理工具
- 《疯狂的程序员》摘抄
- UVA 11549 - Calculator Conundrum Floyd判圈法
- 第一个只出现一次的字符
- Android中LocalSocket(套接字)使用
- 数组指针和指针数组的区别
- hdu 4577 X-Boxes(大数)
- 实现Linux与Windows双系统共存下修复磁盘分区表
- 程序员面试题精选100题(26)-和为n连续正数序列[算法]
- 关于ffmpeg kxmovie
- windows服务调用WebService