#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)。( )
删除第 23 行的强制类型转换,程序的行为不变。( )
除非输入的 n 为 0,否则程序输出的字符数为
当输入为“100 7”时,输出为( )。
202
1515
244
1754
当输入为“-255 8”时,输出为“( )”。
1400
1401
417
400
当输入为“1000000 19”时,输出为“( )”。
BG939
87GIB
1CD428
7CF1B