Calculator Conundrum
2016-02-05 15:08
225 查看
题意:
给出位数和一个数,求出在位数内的数的次方的最大值
思路:
循环控制条件是得到的数已经得到过,即处理数出现循环,则无须再处理了,所以用到了set,用来判断处理数是否出现过
那截取位数用到了sstream s <<a*a, st = s.str(), 现将数转为字符串,再用substr截取需要的位数,再用 sstream s2(st) >> ans, 将字符串转为数字
代码:
给出位数和一个数,求出在位数内的数的次方的最大值
思路:
循环控制条件是得到的数已经得到过,即处理数出现循环,则无须再处理了,所以用到了set,用来判断处理数是否出现过
那截取位数用到了sstream s <<a*a, st = s.str(), 现将数转为字符串,再用substr截取需要的位数,再用 sstream s2(st) >> ans, 将字符串转为数字
代码:
#include<cstdio> #include<sstream> #include<set> using namespace std; int k, n; int next(int a, int b) { stringstream s; s<<(long long)a*a; string st = s.str(); if(st.length() > b) st = st.substr(0, b); int ans; stringstream s2(st); s2>>ans; return ans; } int main() { set<int>s; int kase; int ans = 0; scanf("%d", &kase); while(kase--) { s.clear(); scanf("%d%d", &n, &k); ans = 0; while(!s.count(k)) { s.insert(k); if(ans < k) ans = k; k = next(k, n); } printf("%d\n", ans); } return 0; }
相关文章推荐
- hdu1045 2010.3.5
- hdu1035 2010.3.5
- android底部导航的实现调查
- golang语法学习(一):变量,常量以及数据类型
- 京东价格监控软件开发技术探讨五:京东验证码的获取
- 从头认识Spring-1.16 SpEl对集合的操作(2)-查询集合以及投影元素集合
- C语言 加法 大数加法
- 将.stl文件转化为.dae并动态加载到SceneKit显示(ios中显示3d模型)
- C语言获取系统时间的函数
- C语言获取系统时间的函数
- Android网络开源库Android-async-http 的基本用法(二)
- 后缀数组 nbut1171 后缀数组
- 1004. 成绩排名
- C语言获取系统时间的函数
- hdu1150 2010.3.5
- hdu1071 2010.3.5
- 14 jquery/js语法
- kNN(K-Nearest Neighbor)最邻近规则分类(转)
- 算术表达式转换为后缀表达式
- 封装实现UIButton左文字右图片