组合题
#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 的正整数,完成下面的判断题和单选题:

第1题 判断题

该算法的时间复杂度为 O(logk n)。( )

A 正确
B 错误
第2题 判断题

删除第 23 行的强制类型转换,程序的行为不变。( )

A 正确
B 错误
第3题 判断题

除非输入的 n 为 0,否则程序输出的字符数为

A 正确
B 错误
第4题 单选题

当输入为“100 7”时,输出为( )。

A

202

B

1515

C

244

D

1754

第5题 单选题

当输入为“-255 8”时,输出为“( )”。

A

1400

B

1401

C

417

D

400

第6题 单选题

当输入为“1000000 19”时,输出为“( )”。

A

BG939

B

87GIB

C

1CD428

D

7CF1B

赣ICP备20007335号-2