#340. CSP2019PJ-17

CSP2019PJ-17

  1. (阅读程序)
#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 是不超过 2622^{62} 的正整数,k 都是不超过 10000 的正整数,完成下面的判断题和单选题。

(判断题)

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

{{ select(1) }}

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

{{ select(2) }}

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

{{ select(3) }}

(选择题)

若输入的 n 等于 101510^{15},输入的 k 为 1,则输出等于( )

{{ select(4) }}

  • (103010^{30} - 101510^{15}) / 2
  • (103010^{30} + 101510^{15}) / 2
  • 1
  • 101510^{15}

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

{{ select(5) }}

  • (3303^{30} - 1) / 2
  • 3303^{30}
  • 3303^{30} - 1
  • (3303^{30} + 1) / 2

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

  • 11,112,222,444,543
  • 11,122,222,444,453
  • 11,122,222,444,543
  • 11,112,222,444,453