组合题

#include <iostream>

using namespace std;


long long n, ans;

int k, len;

long long d[1000000];


int main() {

  cin >> n >> k;

  d[0] = 0;

  len= 1;

  ans = 0;

  for (long long i = 0; i <n; ++i) {

    ++d[0];

    for (int j = 0; j + 1<len; ++j) {

      if (d[j] == k) {

        d[j] = 0;

        d[j + 1] += 1;

        ++ans;

      }

    }

    if (d[len- 1] == k) {

      d[len - 1] = 0;

      d[len] =1;

      ++len;

      ++ans;

    }

  }

  cout << ans << endl;

  return 0;

}

假设输入的n是不超过2^62的正整数,k都是不超过10000的正整数,完成下面的判断题和单选题:     

第1题 判断题

若k=1 则输出ans时,len=n

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

若k>1则输岀ans时,len 一定小于n。()

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

若k>1,则输出ans时,klen—定大于n。()

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

若输入的n等于1015,输入的k为1,则输岀等于()。

A

(1030-1015)/2

B

(1030+1015)/2

C

1

D

1015

第5题 单选题

若输入的n等于205,891,132,094,649(即330),输入的k为3,则 输出等于()。

A

(330-1)/2

B

330

C

330-1

D

(330+1)/2

第6题 单选题

若输入的n等于100,010,002,000,090,输入的k为10,则输出等 于()。

A

11,112,222,444,543

B

11,122,222,444,453

C

11,122,222,444,543

D

11,112,222,444,453

赣ICP备20007335号-2