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

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

二、阅读程序(判断题正确填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 是非负整数。

对所有的 n>0n > 0,必有 solve1(n) <= n

{{ select(1) }}

  • 正确
  • 错误