uva 11549 - Calculator Conundrum 模擬
Floyd判圈算法,好厲害的樣子
用sscanf要2s,速度太低,不過比較好寫,要注意是字符數組要開19以上
/* author:jxy lang:C/C++ university:China,Xidian University **If you need to reprint,please indicate the source** */ #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; int ans=0; char s[21]; int n; void next(int &k) { long long t=(long long)k*k; sprintf(s,"%lld",t); if(strlen(s)>n)s[n]='\0'; sscanf(s,"%d",&k); ans=max(ans,k); return; } int main() { int T; scanf("%d",&T); while(T--) { int k; scanf("%d%d",&n,&k); ans=k; int k1=k; do { next(k); next(k); next(k1); }while(k1!=k); printf("%d\n",ans); } }
最後更新:2017-04-03 15:22:03