在UVA刷的第一题,floyd判圈。。。。。。。
#include<cstdio>
#include<cmath>
typedef long long LL;
int next(int n,int k)
{
if(!k) return 0;
long long k3=(long long)k*k;
int a[15],l=0;
while(k3>0)
{
a[l++]=k3%10;
k3/=10;
}
if(n>l)
{
n=l;
}
int res=0;
for(int i=0;i<n;i++)
{
res=res*10+a[--l];
}
return res;
}
int main()
{
int t,n,k;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&k);
int k1,k2,ans;
ans=k1=k2=k;
do
{
k1=next(n,k1);
k2=next(n,k2);
if(ans<k2) ans=k2;
k2=next(n,k2);
if(ans<k2) ans=k2;
}while(k1!=k2);
printf("%d\n",ans);
}
return 0;
}