您的位置:首页 > 其它

HDU1005

2015-11-04 15:38 246 查看
题意:f(1)=1,f(2)=1,f(n)=a*(fn-1)+b*f(n-2). 输入a,b,n输出,f(n)

根据公式 f(n)=(a*f(n-1)+b*f(n-2))%7

可以发现,f(n-1)和f(n-2)的结果必然为0,1,2,3,4,5,6。7种可能

a,b是定值,那么f(n)只有7*7种结果,开个50的数组打表求f(1~50即可)

代码:
#include<stdio.h>
int main()
{
int a,b,n;
int i;
int map[60];
while(scanf("%d%d%d",&a,&b,&n),a|b|n)
{
map[1]=map[2]=1;
for(i=3;i<60;i++)
map[i]=(a*map[i-1]+b*map[i-2])%7;
printf("%d\n",map[n%49]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: