水题 HDU-1005 Number Sequence

题目链接:杭电1005
HDU-1005 Number Sequence
题目大意:按公式求下一项 类似于斐波那契数列

解题思路:按普通递归迭代方式求解完美超时 多打印点数据发现数据每48项为一个周期(如图所示) 所以最多只要求48项即
HDU-1005 Number Sequence
代码块:

#include<iostream>

using namespace std;

int main() {
	int a, b, n;
	while (cin >> a >> b >> n) {
		if ((a + b + n) == 0) return 0;
		int arr[55] = { 0 };
		arr[1] = 1;
		arr[2] = 1;
		n %= 48;
		for (int i = 3; i <= n; i++) {
			arr[i] = (a*arr[i - 1] + b * arr[i - 2]) % 7;
		}
		cout << arr[n] << endl;
	}
	return 0;
}

相关文章: