QQ扫一扫联系
1 #include <iostream> 2 using namespace std; 3 4 long long n, ans; 5 int k, len; 6 long long d[1000000]; 7 8 int main() { 9 cin >> n >> k; 10 d[0] = 0; 11 len= 1; 12 ans = 0; 13 for (long long i = 0; i <n; ++i) { 14 ++d[0]; 15 for (int j = 0; j + 1<len; ++j) { 16 if (d[j] == k) { 17 d[j] = 0; 18 d[j + 1] += 1; 19 ++ans; 20 } 21 } 22 if (d[len - 1] == k) { 23 d[len - 1] = 0; 24 d[len] =1; 25 ++len; 26 ++ans; 27 } 28 } 29 cout << ans << endl; 30 return 0; 31 }
假设输入的 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,则输出等于( )。
1.A. 正确B. 错误
2.A. 正确B. 错误
3.A. 正确B. 错误
4.A. 1
B. (10^30-10^15)/2
C. (10^30+10^15)/2
D. 10^15
5.A. 3^30
B. (3^30-1)/2
C. 3^30-1
D. (3^30+1)/2
6.
A. 11,112,222,444,543
B. 11,122,222,444,453
C. 11,122,222,444,543
D. 11,112,222,444,453
第一空(1.5分):___________________
第二空(1.5分):___________________
第三空(1.5分):___________________
第四空(3分):___________________
第五空(3分):___________________
第六空(3分):___________________