1 条题解
-
1
202502cj14周子祥 (周子祥) LV 8 @ 2025-06-08 16:35:23
#include <iostream>
using namespace std;void Mul(int x, int n, int k) {
int a[100000] = { 0 }; // 存储计算结果的数组,初始为全零
int b = 0; // 进位数
a[99999] = 1;// 高精度幂运算
for (int i = 0; i < n; i++) {
int j = 99999;
while (j >= 0) {
// 计算当前位的乘积并加上进位数
a[j] = a[j] * x + b;
b = a[j] / k; // 计算进位数
a[j] = a[j] % k; // 余数作为a[j]
j--;
}
}int s;
// 找到第一个非零数字的位置
for (s = 0; s < 100000; s++) {
if (a[s] != 0)
break;
}if (s == 100000) { // 特判结果为 0 的情况
cout << '0';
}
else {
while (s < 100000) {
if (a[s] < 10) {
cout << a[s];
}
else {
cout << static_cast<char>('A' + a[s] - 10);
}
s++;
}
}
}int main() {
int x, n, k;cin >> x >> n >> k;
Mul(x, n, k);
return 0;
}
- 1
信息
- ID
- 1072
- 难度
- 5
- 分类
- (无)
- 标签
- 递交数
- 31
- 已通过
- 14
- 通过率
- 45%
- 上传者