题意:给出f1=x,f2=y,f(i)=f(i-1)+f(i+1),求f(n)模上10e9+7
因为 可以求出通项公式:f(i)=f(i-1)-f(i-2)
然后
f1=x;
f2=y;
f3=y-x;
f4=-x;
f5=-y;
f6=-y+x;
f7=x; 发现是以6为循环的
还有注意下余数为正,就每次加上一个mod再模上mod
#include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std; typedef long long LL;
const int INF = (<<)-;
const int mod=;
const int maxn=; LL a[]; int main(){
LL x,y,n;
cin>>x>>y;
cin>>n;
a[]=(x+mod)%mod;
a[]=(y+mod)%mod;
a[]=(y-x+*mod)%mod;
a[]=(-x+mod)%mod;
a[]=(-y+mod)%mod;
a[]=(-y+x+*mod)%mod;
cout<<a[n%]<<"\n";
return ;
}