uva11549 - Calculator Conundrum
来源:互联网 发布:高博软件地址 编辑:程序博客网 时间:2024/06/05 19:29
题意:
一个数k,让它一直平方一直平方,它只能显示n位数,求这个n为数最大为多少。
思路:
我们可以得到,这个数将出现循环,所以可用set容器中的count函数检测某元素在此前是否出现过,一直获得下一个数,保留最大值即可。
代码:
#include <iostream>#include <cstdio>#include <cmath>#include <set>#include <cstring>#include <algorithm>using namespace std;int arr[100];int Next(int n, int k) {if (!k)return 0;long long k2 = (long long)k*k;memset(arr, 0, sizeof(arr));int l = 0;while(k2 > 0) {arr[l++] = k2 % 10;k2 = k2 / 10;}if (l < n)n = l;int i = 0; k = 0;while (i<n){k = k * 10 + arr[--l];i++;}//printf("%d\n",k);return k;}int main(){int cas;scanf("%d", &cas);while (cas--) {int n, k;scanf("%d%d", &n, &k);set<int> st;int ans = k;while (!st.count(k)) {st.insert(k);if (ans < k)ans = k;k = Next(n, k);}printf("%d\n", ans);}return 0;}
0 0
- Calculator Conundrum UVa11549
- UVA11549 Calculator Conundrum
- uva11549 - Calculator Conundrum
- UVa11549 - Calculator Conundrum (Floyd判圈法)
- uva11549 Calculator Conundrum【解法一】
- uva11549 Calculator Conundrum【解法二】
- uva11549 - Calculator Conundrum(计算机谜题)
- UVa11549 - Calculator Conundrum(Floyd判圈算法)
- 算法竞赛入门经典训练指南 例题1-19 计算器谜题 Calculator Conundrum uva11549
- CALCULATOR CONUNDRUM
- 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
- 树状数组
- Swift 宏定义
- BUAA 1389:愤怒的DZY【二分】
- 二叉树 2
- Android Jni开发之eclipse中自动化编译ndk-build
- uva11549 - Calculator Conundrum
- 获取系统环境变量
- linux的前台后台进程
- ffmpeg编译
- 【C++基础】C++函数模板(二)
- nuttx编译过程
- 哈理工OJ 1643 多边形-2【极角排序+凸凹包判断】
- RMQ 模板
- 在1.7的jdk环境下 如何通过修改ant脚本文件设置某个指定项目编译环境为1.6