我也是用單線程異步化的這種方式,現在是用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++委托。