[1005]nunber sequence.cpp

来自「HDUOJ_ACM题目集合~~希望各位能用得上」· C++ 代码 · 共 48 行

CPP
48
字号
// [1005]Nunber Sequence.cpp : 定义控制台应用程序的入口点。
//

#include <iostream>
using namespace std;

int mark[9][9];
int stack[51];
int stacktop;
int a, b, n;

int find()
{
	int i, begin, loop;
	memset (mark,-1,sizeof(mark));
	stacktop = 3;
	stack[1]=stack[2]=1;
	mark[1][1] = 2;

	while (stacktop <= n)
	{
		i = stacktop;
		stack[stacktop++] = (stack[i-1] * a + stack[i-2] * b)%7;
		if (mark[stack[i]][stack[i-1]] == -1)
		{
			mark[stack[i]][stack[i-1]]=i;
		}
		else
		{
			begin = mark[stack[i]][stack[i-1]];
			loop = i - begin;
			n = (n - begin) % loop + begin;
			break;
		}
	}
	return stack[n];
}

int main()
{
	while (cin>>a>>b>>n && (a!=0&&b!=0&&n!=0))
	{
		cout<<find()<<endl;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?