根据公式求结果的一道题。范围100,000,000,果断暴力不行,找规律才能做出来。
#include<stdio.h>
#include<math.h>
#include<string>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int f[10010];
int main(){
int a, b, n;
f[1] = 1;
f[2] = 1;
while(cin>>a>>b>>n, a!=0 || b!=0 || n!=0){
int i;
for(i=3; i<10000; i++){
f[i] = (a * f[i-1] + b * f[i-2]) % 7;
if(f[i] == 1 && f[i-1] == 1)//结果重复
break;
}
n = n % (i-2);
f[0] = f[i-2];//如果整出的情况
printf("%d\n",f[n]);
}
return 0;
}