#1716. 珅泽教育CSP-J第一轮模拟考第七套 第 20 题

珅泽教育CSP-J第一轮模拟考第七套 第 20 题

二、阅读程序(判断题正确填T,错误填F;判断题1分,选择题3分,共计40分)

第1题

int solve1(int n)
{
    n++;
    int size = 0;
    int digit[16];
    int pow = 1;
    int s = 0;
    while (n > 0) {
        digit[size] = n % 10;
        size++;
        n /= 10;
        s += pow;
        pow *= 5;
    }
    while (size > 0) {
        --size;
        pow /= 5;
        s += (digit[size] / 2) * pow;
        if (digit[size] % 2 == 0) break;
    }
    return s - 1;
}

int solve2(int n)
{
    int s = 0;
    for(int i = 1; i <= n ; i += 2)
    {
        int t = i;
        bool pass = true;
        while (t > 0) {
            int x = t % 10;
            if(x%2 == 0)
            {
                pass = false;
                break;
            }
            t /= 10;
        }
        if (pass) s++;
    }
    return s;
}

保证 solve1solve2 的参数 n 是非负整数。

关于 solve1(n)solve2(n) 的大小关系,当 n0n \ge 0 时,下列说法正确的是( )。

{{ select(1) }}

  • 必然有 solve1(n) < solve2(n)
  • 必然有 solve1(n) == solve2(n)
  • 只有当 nn 为偶数时,才有 solve1(n) == solve2(n)
  • 只有当 nn 为奇数时,才有 solve1(n) == solve2(n)