正在载入在线练习界面,本页内容可直接阅读…

AK CSP › NOIP 提高 2017 第一轮真题 › 第 26 题

NOIP 提高 2017 第一轮 第 26 题:输出 1:_(2 分)

阅读程序 · 枚举与模拟 · 答案 13; 20171; 1321

题目

#include <iostream>
using namespace std;
int main()
{
    int n, m;
    cin >> n >> m;
    int x = 1;
    int y = 1;
    int dx = 1;
    int dy = 1;
    int cnt = 0;
    while (cnt != 2)
    {
        cnt = 0;
        x = x + dx;
        y = y + dy;
        if (x == 1 || x == n)
        {
            ++cnt;
            dx = -dx;
        }
        if (y == 1 || y == m)
        {
            ++cnt;
            dy = -dy;
        }
    }
    cout << x << " " << y << endl;
    return 0;
}

本小题

输入 1:4 3
输出 1:_(2 分)

输入 2:2017 1014
输出 2:_(3 分)

输入 3:987 321
输出 3:_(3 分)

答案

13; 20171; 1321

题解

考点定位

本题考「大数运算模拟」,对应大纲 4.2.1 模拟(难度【5】)。

解题过程

程序对 x=1,y=n 做乘除模拟(逐位缩放类)。按原卷三组输入输出:

答案:13; 20171; 1321(官方口径三行)。

易错提醒

① 大数运算模拟题以「每轮循环变量的不变式」为纲;② 三组输入共用同一段逻辑,找规律外推。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号