社区讨论

初赛第30题求助

学术版参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo7y66os
此快照首次捕获于
2023/10/27 09:41
2 年前
此快照最后确认于
2023/10/27 09:41
2 年前
查看原帖
为什么这题选 × 啊
30)除非输入的 n 为 0,否则程序输出的字符数为 O(logkn+1)O(\lfloor\log_k|n|+1\rfloor)。(×)
CPP
01 #include <iostream>
02 #include <algorithm>
03
04 using namespace std;
05
06 const int MAXL = 1000;
07
08 int n, k, ans[MAXL];
09
10 int main(void)
11 {
12     cin >> n >> k;
13     if (!n) cout << 0 << endl;
14     else
15     {
16         int m = 0;
17         while (n)
18         {
19             ans[m++] = (n % (-k) + k) % k;
20             n = (ans[m - 1] - n) / k;
21         }
22         for (int i = m - 1; i >= 0; i--)
23             cout << char(ans[i] >= 10 ?
24                 ans[i] + 'A' - 10 :
25                 ans[i] + '0');
26         cout << endl;
27     }
28     return 0;
29 }

回复

2 条回复,欢迎继续交流。

正在加载回复...