题目链接:http://codeforces.com/contest/450/problem/B
思路:当看到这个数列时我的第一感觉就是找公式,可是找啦一会没找出来,于是就想可能是找规律,就把測试数据继续写下去,发现这是一个周期为6的周期数列
code
#include<cstdio> #include<iostream> #define m 1000000007 using namespace std; int main() { __int64 f[10]; while(scanf("%I64d%I64d",&f[1],&f[2])==2) { int k; int i; scanf("%d",&k); k=k%6; if(k==0) k=6; //注意这个要又一次赋值的 f[1]=(f[1]+m)%m; f[2]=(f[2]+m)%m; for(i=3;i<=6;i++) { f[i]=(f[i-1]-f[i-2]+m)%m; //printf("%I64d ",f[i]); } printf("%I64d ",f[k]); } return 0; }