# 题目信息

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 257509 Accepted Submission(s): 65939

# Problem Description

A number sequence is defined as follows:

f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.

Given A, B, and n, you are to calculate the value of f(n).

# Input

The input consists of multiple test cases. Each test case contains 3 integers A, B and n on a single line (1 <= A, B <= 1000, 1 <= n <= 100,000,000). Three zeros signal the end of input and this test case is not to be processed.

# Output

For each test case, print the value of f(n) on a single line.

# Sample Input

1
2
3
1 1 3
1 2 10
0 0 0

# Sample Output

1
2
2
5

# 题解

# C 语言解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>

int main() {
int A, B, i;
long int n;
while (scanf("%d %d %d", &A, &B, &n) != EOF) {
int a[50];
a[1] = 1;
a[2] = 1;
if ((A + B + n) == 0)break;
for (i = 3; i <= 48; i++) {
a[i] = (A * a[i - 1] + B * a[i - 2]) % 7;
}
n = n % 48;
a[0] = a[48];
printf("%d\n", a[n]);
}
return 0;
}

# Be Careful

这道题,难道找规律。规律怎么找出来的,是困难的。

# 链接

# 最后

希望与你一起遇见更好的自己

期望与你一起遇见更好的自己

更新于 阅读次数

请我喝[咖啡]~( ̄▽ ̄)~*

方小白 微信支付

微信支付

方小白 支付宝

支付宝

方小白 numberpay

numberpay