我也是用单线程异步化的这种方式,现在是用tornado中coroutine和Future来实现。
逻辑单线程,是无需担心多线程问题,这点很舒服,但单线程无法很好利用多核也是觉得没有最大化性能,或者游戏真是够用就行。
int main()
{
int A,B,n,i,j,num,m;
int a[1000];
while(scanf("%d %d %d",&A,&B,&n)!=EOF)
{
if(A==0 && B==0 && n==0)
break;
a[1]=1;a[2]=1;
for(i=3;i<50;i++)
a[i]=( A * a[i - 1] + B * a[i - 2]) % 7;
m=1;
for(j=3;j<50;j++)
if(a[j]==1 && a[j-1]==1)
break;
j-=2;
num=n%j;
if(num==0)
printf("%d\n",a[j]);
else
printf("%d\n",a[num]);
}
return 0;
}
@战魂小筑
原作者比较较真,是为了得到高性能的C++委托。