正在载入在线练习界面,本页内容可直接阅读…
AK CSP › NOIP 提高 2017 第一轮真题 › 第 26 题
NOIP 提高 2017 第一轮 第 26 题:输出 1:_(2 分)
题目
#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号