f(n-1)和f(n-2)所有组合情况有49种,即周期最大为49,但是f(n-1)=f(n-2)=0的情况下,整个数列都为0,而题目条件f(1)=f(2)=1,所以排除这种情况,最大周期为48;
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
int a,b,n;
int f[99];
while(scanf("%d%d%d",&a,&b,&n),(a||b||n))
{
f[1]=f[2]=1;
for(int i=3;i<99; i++)
{
f[i]=(a*f[i-1]+b*f[i-2])%7;
}
printf("%d\n",f[n%48+48]);
}
return 0;
}
原文地址:http://blog.csdn.net/loolu5/article/details/41213243