(3)
- #include <iostream>
- #include <algorithm>
- using namespace std;
- const int MAXL = 1000;
- int n, k, ans[MAXL];
- int main(void)
- {
- cin >> n >> k;
- if (!n) cout << 0 << endl;
- else
- {
- int m = 0;
- while (n)
- {
- ans[m++] = (n % (-k) + k) % k; 20 n = (ans[m - 1] - n) / k;
- }
- for (int i = m - 1; i >= 0; i--)
- cout << char(ans[i] >= 10 ?
- ans[i] + 'A' - 10 :
- ans[i] + '0');
- cout << endl;
- }
- return 0;
- }
假设输入的 n 在 int 范围内,k 为不小于 2 且不大于 36 的正整数,完成下面的判断题和单选题:
判断
该算法的时间复杂度为 O(logk n)。( )
A.正确
B.错误
判断
删除第 23 行的强制类型转换,程序的行为不变。( )
A.正确
B.错误
判断
除非输入的 n 为 0,否则程序输出的字符数为
A.正确
B.错误
单选
当输入为“100 7”时,输出为( )。
A.202
B.1515
C.244
D.1754
单选
当输入为“-255 8”时,输出为“( )”。
A.1400
B.1401
C.417
D.400
单选
当输入为“1000000 19”时,输出为“( )”。
A.BG939
B.87GIB
C.1CD428
D.7CF1B