记录编号 |
44166 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
数列求值 |
最终得分 |
100 |
用户昵称 |
Truth.Cirno |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.027 s |
提交时间 |
2012-10-17 08:01:28 |
内存使用 |
3.15 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
int main(void)
{
freopen("sequenceb.in","r",stdin);
freopen("sequenceb.out","w",stdout);
int i,a,b,n,temp,nex[3][3]={{0,1,2},{1,2,0},{2,0,1}};
int T,f[100]={0};
cin>>a>>b>>n;
if (n<=10000000)
{
f[0]=1;
f[1]=1;
for (i=3;i<=n;i++)
{
temp=i%3;
f[nex[temp][2]]=(a*f[nex[temp][1]]+b*f[nex[temp][0]])%7;
}
cout<<f[nex[n%3][2]]<<endl;
}
else
{
f[1]=1;
f[2]=1;
for (i=3;i<100;i++)
{
f[i]=(a*f[i-1]+b*f[i-2])%7;
if (f[i]==1&&f[i-1]==1)
break;
}
T=i-2;
n%=T;
if (n==0)
n=T;
cout<<f[n]<<endl;
}
return(0);
}