floyd 判圈算法 UVa 11549 计算器谜题
生活随笔
收集整理的這篇文章主要介紹了
floyd 判圈算法 UVa 11549 计算器谜题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2544
floyd 判圈算法? 參考 http://blog.csdn.net/l03071344/article/details/8707135
前面的solve 求k的最前n位?
我之前用的函數(shù)是??不曉得為什么不可以。。?
int solve(int k,int n) {char ss[100]; sprintf(ss,"%s",k); ss[n]='\0'; sscanf(ss,"%d",&k); return k; }?
#include<iostream> #include<stdio.h> #include<string.h> #include<set> using namespace std;int solve(int k,int n) {char ss[100];__int64 k2;int l=0;k2=(__int64)k*k;while(k2){ss[l++]=k2%10;k2/=10;}int ans=0,count=0;while(n--&&l--){count++;ans=ans*10+ss[l];}return ans; }int main() {int n,k,ans,k1,k2;int i,j,m,t;scanf("%d",&t);while(t--){set<int> s; //用到容器的時候 總是不記得清空 貢獻(xiàn)幾次wa 將定義的放在這里就可以不要清空容器了 不過會很耗空間 還好這里沒有超scanf("%d%d",&n,&k);
ans=k;k1=k2=k;do{k1=solve(k1,n);k1=solve(k1,n); if(ans<k1) ans=k1;k2=solve(k2,n); if(ans<k2) ans=k2;}while(k1!=k2);printf("%d\n",ans);}return 0; }
?
轉(zhuǎn)載于:https://www.cnblogs.com/assult/p/3174273.html
總結(jié)
以上是生活随笔為你收集整理的floyd 判圈算法 UVa 11549 计算器谜题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】webgame前台开发总结--虽然
- 下一篇: 一个不错的windows编程网址