Jzzhu has invented a kind of sequences, they meet the following property:
You are given x and y, please calculate fn modulo 1000000007 (109 + 7).
The first line contains two integers x and y (|x|, |y| ≤ 109). The second line contains a single integer n (1 ≤ n ≤ 2·109).
Output a single integer representing fn modulo 1000000007 (109 + 7).
2 3 3
1
0 -1 2
1000000006
In the first sample, f2 = f1 + f3, 3 = 2 + f3, f3 = 1.
In the second sample, f2 = - 1; - 1 modulo (109 + 7) equals (109 + 6).
題意:給你一個遞推式,f2=f1+f3-->變形爲:f[i]=f[i-1]-f[i-2];輸入f[1]和f[2];求第n個數的值;如果你想打表的話勸你放棄吧!肯定會超時的,還記得高中的等差序列嗎!對這絕對是一個週期序列!而且週期爲6;
#include<stdio.h>
int main()
{
__int64 a[10],x,y,n;
int i;
scanf("%I64d%I64d",&x,&y);
a[1]=x;a[2]=y;
for(i=3;i<=6;i++)
a[i]=a[i-1]-a[i-2];
a[0]=a[6];
scanf("%I64d",&n);
n=n%6;
while(1)
{
if(a[n]<0)
a[n]+=1000000007;
else break;
}
printf("%I64d\n",a[n]%1000000007);
return 0;
}