#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, 则输出等于()。