如题,我打了一个明显错误的做法,竟然AC了:
#include<bits/stdc++.h>
using namespace std;
long long n,m,k;
long long x,y,t,a[15][15],len;
int main(){
scanf("%d%d%lld",&n,&m,&k);x=n,y=m;
if(k<=1e6){
for(int i=1;i<k;++i) t=x,x=y,y=y*t%10;
printf("%d\n",x);
return 0;
}
for(long long i=1;i<=100;++i){
t=x,x=y,y=y*t%10;
if(a[x][y]!=0){
len=i-a[x][y];
break;
}
a[x][y]=i;
}
x=n,y=m;
k=k%len+len*2;//这里显然错了
for(int i=1;i<k;++i) t=x,x=y,y=y*t%10;
printf("%d\n",x);
return 0;
}
Hack:
1 3 5