不是VIP会员,不能显示答案

题目解答

题目:
#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
输入2: 2017 1014
输出:1 3|2017 1
考点: 0
分析:
解答: 经过输入1的尝试,可以发现一些规律:
x的变化: 1 2 3 4 3 2 1
y的变化: 1 2 3 2 1 2 3
x和y的数据变化都有各自的周期,当恰好同时满足(x==1 or x==n)和(y==1 or y==m)的时候就输出。
所以输入2可以
x 1 2 3 4 .....2017
y:1 2 3 4 ...1014 1013...1
评论:
老师: 0