题意很明确,先求出一段循环节,再对这段数求出n,
一开始我用的vector来求,可是忘记了内存问题,参考了别人的代码,才发现了问题,真是惭愧,向大神们致敬,
重新写的一个
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int vis[100], n,num,p;
void cnt(int x, int y)
{
vis[0] = x;
vis[1] = y;
for(int i = 2; i <= 100; i++)
{
int nexta = vis[i-1]+vis[i-2];
if( nexta > 9 )
{
vis[i] = nexta/10;
vis[i+1] = nexta%10;
i++;
}
else
vis[i] = nexta;
if( vis[i-1] == vis[0] && vis[i] == vis[1] )
{
p = i-1;
break;
}
}
num = vis[ (n-1)%p ];
}
int main()
{
ifstream cin("in.txt");
int a, b, T;
cin>>T;
for(int i = 1; i <= T; i++ )
{
cin>>a>>b>>n;
cnt(a,b);
cout<<"Case #"<<i<<": "<<num<<endl;
}
return 0;
}