33,010
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
int main()
{
long long a,b,n,f[1000],i;
f[1]=1,f[2]=1;
while((cin>>a>>b>>n)&&a&&b&&n)
{
int k=3;
for(i=3;i<100;i++)
{
f[i]=(a*f[i-1]+b*f[i-2])%7;
if(k!=3&&f[i]==f[3]&&f[i-1]==f[2]&&f[i-2]==f[1])
break;
k++;
}
cout<<f[(n-1)%(k-3)+1]<<endl;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
long long a,b,n,f[1000],i;
f[1]=1,f[2]=1;
while((cin>>a>>b>>n)&&a&&b&&n)
{
int k=3;
for(i=3;i<100;i++)
{
f[i]=(a*f[i-1]+b*f[i-2])%7;
if(k!=3&&f[i]==f[3]&&f[i-1]==f[2]&&f[i-2]==f[1])
break;
k++;
}
cout<<f[(n-1)%(k-3)+1]<< " "; //不会是输出格式不对吧?endl 给为" ",输出在同一行
}
return 0;
}
#include<stdio.h>
int main()
{
int n, A, B, T;
int i, ans,ans_old;
int a[64];
while(1)
{
scanf("%d %d %d", &A, &B, &n);
if((n == 0) && (A == 0) && (B == 0))
break;
ans = 1;
ans_old = 1;
A %= 7;
B %= 7;
if((n == 1) || (n == 2))
ans = 1;
else
{
if((A == 0) && (B == 0))
{
ans = 0;
}
else
{
for(i = 2;i < n ; ++i)
{
if(i > 4 && ans_old == a[2] && ans == a[3])
{
T = i - 4;
a[1] = a[T+1];
break;
}
ans = ans_old + ans;
ans_old = ans - ans_old;
ans = ans - ans_old;
ans = (B*ans + A*ans_old)%7;
a[i] = ans;
}
ans = a[(n-2)%T + 1];
}
}
printf("%d\n", ans);
}
return 0;
}