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).
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.
For each test case, print the value of f(n) on a single line.
1 | 1 1 3 |
1 | 2 |
This problem seems like a very huge problem, however, the answers have some certain regular pattern. For $f[n]$, it’s consisted of a basic number array. That means after a certain number of numbers, the numbers will be the same as begin. Like $1, 2, 5, 6, 1, 2, 5, 6, 1, 2, 5, 6 \cdots$. So just loop to find the recycle number.
Not that if you don’t define boarder for i, it will be time limit exceeded. And the biggest recycled number is no bigger than 49.
1 |
|