69,365
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
int main(void)
{
int a[101];//改 __int64 a[100000];
int A,B,n,i;
while(scanf("%d%d%d",&A,&B,&n)!=EOF&&!(A==0&&B==0&&n==0))
{
a[1]=1;a[2]=1;
if (n>=3) //加
{
for(i=3;i<100;i++) //改 for(i=3;i<=n;i++)
{
a[i] = (A * a[i - 1] + B * a[i - 2])%7;
if (a[i]==1 && a[i-1]==1) break; //加
}
i-=2; //加
n%=i; //加
if (n==0) n=i; //加
}
printf("%d\n",a[n]);//改 printf("%I64d\n",a[n]);
}
return 0; //加
}
#include <vector>
#include <iostream>
using namespace std;
void span(vector<int>& vi, int a, int b);
int main()
{
for(int a=1; a<7; ++a)
for(int b=1; b<7; ++b)
{
vector<int> vi;
span(vi,a,b);
cout<<'('<<a<<','<<b<<')';
for(auto i:vi)
cout<<' '<<i;
cout<<endl;
}
}
void span(vector<int>& vi, int a, int b)
{
vi.push_back(1);
vi.push_back(1);
while(true)
{
vi.push_back((a*vi[vi.size()-2]+b*vi[vi.size()-1])%7);
if(vi[vi.size()-2]==vi[0] && vi[vi.size()-1]==vi[1])
{
vi.pop_back();
vi.pop_back();
break;
}
}
}
输出
(1,1) 1 1 2 3 5 1 6 0 6 6 5 4 2 6 1 0
(1,2) 1 1 3 0 3 6
(1,3) 1 1 4 6 1 2 0 2 6 6 3 1 6 5 0 5
(1,4) 1 1 5 0 5 6 1 3 6 6 2 0 2 1 6 4
(1,5) 1 1 6 3 0 3
(1,6) 1 1 0 1 6 2 4 5 6 6 0 6 1 5 3 2
(2,1) 1 1 3 5 4 0
(2,2) 1 1 4 3 0 6 5 1 5 5 6 1 0 2 4 5 4 4 2 5 0 3 6 4 6 6 3 4 0 1 2 6 2 2 1 6 0 5 3 2 3 3 5 2 0 4 1 3
(2,3) 1 1 5 3 5 0 3 2 5 5 4 1 4 0 1 3 4 4 6 5 6 0 5 1 6 6 2 4 2 0 4 5 2 2 3 6 3 0 6 4 3 3 1 2 1 0 2 6
(2,4) 1 1 6 5 4 5 0 3 5 5 2 4 6 4 0 1 4 4 3 6 2 6 0 5 6 6 1 2 3 2 0 4 2 2 5 3 1 3 0 6 3 3 4 1 5 1 0 2
(2,5) 1 1 0 2 3 5 3 4 5 5 0 3 1 4 1 6 4 4 0 1 5 6 5 2 6 6 0 5 4 2 4 3 2 2 0 4 6 3 6 1 3 3 0 6 2 1 2 5
(2,6) 1
(3,1) 1 1 4 0 5 5 6 0 4 4 2 0 6 6 3 0 2 2 1 0 3 3 5 0
(3,2) 1 1 5 6 6 2
(3,3) 1 1 6 0 4 5 6 5 5 2 0 6 4 2 4 4 3 0 2 6 3 6 6 1 0 3 2 1 2 2 5 0 1 3 5 3 3 4 0 5 1 4
(3,4) 1 1 0 3 5 1 5 2 2 0 6 3 2 3 4 4 0 5 6 4 6
(3,5) 1
(3,6) 1 1 2 1 5 5 3 5 4 4 1 4 6 6 5 6 2 2 4 2 3 3 6 3
(4,1) 1 1 5 2 1 2 6 0 3 3 1 6 3 6 4 0 2 2 3 4 2 4 5 0 6 6 2 5 6 5 1 0 4 4 6 1 4 1 3 0 5 5 4 3 5 3 2 0
(4,2) 1 1 6 2 0 1 2 1 3 3 4 6 0 3 6 3 2 2 5 4 0 2 4 2 6 6 1 5 0 6 5 6 4 4 3 1 0 4 1 4 5 5 2 3 0 5 3 5
(4,3) 1 1 0 4 5 3
(4,4) 1
(4,5) 1 1 2 0 1 5 1 4 3 3 6 0 3 1 3 5 2 2 4 0 2 3 2 1 6 6 5 0 6 2 6 3 4 4 1 0 4 6 4 2 5 5 3 0 5 4 5 6
(4,6) 1 1 3 1 4 0 2 5 3 3 2 3 5 0 6 1 2 2 6 2 1 0 4 3 6 6 4 6 3 0 5 2 4 4 5 4 2 0 1 6 5 5 1 5 6 0 3 4
(5,1) 1 1 6 4 6 5 0 4 4 3 2 3 6 0 2 2 5 1 5 3 0
(5,2) 1 1 0 5 3 3 0 1 2 2 0 3 6 6 0 2 4 4 0 6 5 5 0 4
(5,3) 1
(5,4) 1 1 2 6 6 5
(5,5) 1 1 3 6 3 3 2 4 2 2 6 5 6 6 4 1 4 4 5 3 5 5 1 2
(5,6) 1 1 4 1 5 0 4 3 3 5 3 1 0 5 2 2 1 2 3 0 1 6 6 3 6 2 0 3 4 4 2 4 6 0 2 5 5 6 5 4 0 6
(6,1) 1 1 0 6 6 0
(6,2) 1
(6,3) 1 1 2 5 6 6 5 2
(6,4) 1 1 3 4 6 6 4 3
(6,5) 1 1 4 5 0 2 3 6 6 3 2 0 5 4
(6,6) 1 1 5
a+b=8的时候及其容易,剩下要保存的数据实在不多。