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