不是VIP会员,不能显示答案

题目解答

题目:
#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=8; i<n; ++i) {

++d[0];

for(int j=8; 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。 ( )

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

3) 若k>1,则输出ans时,$k^{len}$一定大于n。 ( )


选择题

4) 若输入的n等于$10^{15}$, 输入的k为1,则输出等于( ) 。

5) 若输入的n等于205,891,132, 094,649(即$3^{30}$), 输入的k为3,则输出等于()。

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


考点:
分析:
解答:
评论:
老师: