1 条题解
-
0
C :
#include <stdio.h> #define MOD 200907 long long g(long long q, long long k) { long long sum = 1, a[1000], i = 0; while (k) { if (k % 2 != 0) a[i++] = 1; else a[i++] = 0; k /= 2; } i--; for (i; i >= 0; i--) { sum = (sum * sum) % MOD; if (a[i]) sum = (sum * q) % MOD; } return sum % MOD; } int main() { long long a, b, c, k, t, d, q; int n; scanf("%d", &n); while (n--) { scanf("%lld%lld%lld%lld", &a, &b, &c, &k); if (b - a == c - b) { d = b - a; t = ((((k - 1) % MOD) * (d % MOD)) % MOD + a % MOD) % MOD; printf("%lld\n", t); } else { q = b / a; printf("%lld\n", (a % MOD * g(q, k - 1)) % MOD); } } return 0; }
C++ :
#include <stdio.h> #define MOD 200907 long long g(long long q, long long k) { long long sum = 1, a[1000], i = 0; while (k) { if (k % 2 != 0) a[i++] = 1; else a[i++] = 0; k /= 2; } i--; for (i; i >= 0; i--) { sum = (sum * sum) % MOD; if (a[i]) sum = (sum * q) % MOD; } return sum % MOD; } int main() { long long a, b, c, k, t, d, q; int n; scanf("%d", &n); while (n--) { scanf("%lld%lld%lld%lld", &a, &b, &c, &k); if (b - a == c - b) { d = b - a; t = ((((k - 1) % MOD) * (d % MOD)) % MOD + a % MOD) % MOD; printf("%lld\n", t); } else { q = b / a; printf("%lld\n", (a % MOD * g(q, k - 1)) % MOD); } } return 0; }
- 1
信息
- ID
- 88
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者