全网最简单的A+B Problem解法?
2024-04-03 22:45:22
发布于:广东
3阅读
0回复
0点赞
进制转换秒了!!!!!(全网A+B Problem最简易做法)
#include <bits/stdc++.h>
using namespace std;
int A[30], B[30], a, b;
int check(int mod) {
int x = a, y = b, ta = 0, tb = 0;
while (x) {
A[++ta] = x % mod;
x /= mod;
}
while (y) {
B[++tb] = y % mod;
y /= mod;
}
for (int i = 1; i <= max(ta, tb); i++) {
A[i] += B[i];
if (A[i] >= mod) A[i + 1] += A[i] / mod, A[i] %= mod;
}
if (A[ta + 1]) ta++;
int Ans = 0;
for (int i = ta; i > 0; i--) Ans = Ans * mod + A[i];
return Ans;
}
int main() {
scanf("%d%d", &a, &b);
int ans[100010];
for (int i = 1; i <= 100000; i++) {
srand((unsigned)time(NULL));
int o = (int) rand() % 1000000 + 2;
ans[i] = check(o);
}
bool f = 1;
for (int i = 2; i <= 100000; i++) if (ans[i] != ans[i - 1]) { f = 0; break; }
if (f) printf("%d\n", ans[1]);
else puts("世纪难题A+B problem,进制转换秒了!");
return 0;
}
这里空空如也
有帮助,赞一个