13815. 珅泽教育CSP-J第一轮模拟考第十八套 第 20 题

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

程序阅读(1):对角线枚举

阅读程序,回答第 16—23 题。输入 a、b 均为正整数。

int solve(int a, int b)
{
    int x = 1;
    int y = 1;
    int rank = 1;
    int dx = -1;
    int dy = 1;
    while (x != a || y != b) {
        if (x + dx < 1) {
            y++;
            dx = -dx;
            dy = -dy;
        } else if (y + dy < 1) {
            x++;
            dx = -dx;
            dy = -dy;
        } else {
            x = x + dx;
            y = y + dy;
        }
        rank++;
    }
    return rank;
}

当 a+ba+b 为奇数时,程序的输出等于 (a+b−1)(a+b)/2+a(a+b-1)(a+b)/2+a。( )

{{ select(1) }}

  • 正确
  • 错误