您的位置:首页 > 产品设计 > UI/UE

CF 257DIV2 B. Jzzhu and Sequences (取余需注意!!!!!!!)

2014-07-21 13:31 387 查看
题意: f1= x,f2= y, 当i>=2时 fi= f(i-1) + f(i+1)

给你一个x,y,n 求fn%(10e9+7)

题目链接:http://codeforces.com/contest/450/problem/B

算一下就可以发现fn是规律的,fn= f(n-6) 所以我们算出f1- f6即可

但是这题我在比赛的时候被别人hack了 , 原因就是我取余的时候没注意,当ans+MOD 还是负数的时候我就会错

代码:

#include <stdio.h>
#include <string.h>
#define MOD 1000000007
#define LL long long
int main()
{
LL a[10];
while(scanf("%lld %lld",&a[1], &a[2])!=EOF)
{
LL n;
scanf("%lld",&n);
a[3]= a[2]- a[1];
a[4]= a[3]- a[2];
a[5]= a[4]- a[3];
a[6]= a[5]- a[4];
a[7]= a[6]- a[5];
n%= 6;
for(int i= 1; i<= 6; i++)
{
if(i)
//之前我是 (a[i]+ MOD)%MOD ,当ans+MOD< 0 会出错
printf("%lld\n",(a[i]%MOD+ MOD)%MOD);
else
printf("%lld\n",(a[6]%MOD+ MOD)%MOD);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: