|
@@ -0,0 +1,50 @@
|
|
|
+#include<bits/stdc++.h>
|
|
|
+
|
|
|
+using namespace std;
|
|
|
+int a, b, n;
|
|
|
+int flag[67] = {
|
|
|
+ 0
|
|
|
+};
|
|
|
+//mod7 很有意思,最多有 7 * 7种情况吧,找循环结构
|
|
|
+// 十位数是本位,个位数是上一位,方便操作
|
|
|
+int f[100] = {
|
|
|
+ 0
|
|
|
+};
|
|
|
+
|
|
|
+int main() {
|
|
|
+ while (scanf("%d%d%d", &a, &b, &n)) {
|
|
|
+ int Begin = 100;
|
|
|
+ int length = 0;
|
|
|
+ memset(flag, 0, sizeof(flag));
|
|
|
+ memset(f, 0, sizeof(f));
|
|
|
+ if (a == 0 && b == 0 && n == 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ f[1] = 1;
|
|
|
+ f[2] = 1;
|
|
|
+ for (int i = 3; i <= 100; i++) {
|
|
|
+ if (i < Begin) {
|
|
|
+ int ans = ((a * f[i - 1] + b * f[i - 2]) % 7) * 10 + f[i - 1];
|
|
|
+ if (flag[ans] == 0) {
|
|
|
+ flag[ans] = i;
|
|
|
+ } else {
|
|
|
+ Begin = flag[ans];
|
|
|
+ length = i - flag[ans];
|
|
|
+ }
|
|
|
+ f[i] = ans / 10;
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (n < Begin) {
|
|
|
+ printf("%d\n", f[n]);
|
|
|
+ } else {
|
|
|
+ printf("%d\n", f[(n - Begin) % length + Begin]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+//
|
|
|
+// Created by Administrator on 2018-11-05.
|
|
|
+//
|
|
|
+
|