其他分享
首页 > 其他分享> > 移动距离

移动距离

作者:互联网

一个蛇形矩阵,给你两个数字,求最少的移动距离:只能横着走或竖着走

这个移动的距离好求:横坐标的差+纵坐标的差

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int w,m,n;
    cin>>w>>m>>n;
    m--,n--;
    int x1,y1,x2,y2;
    x1=m/w;
    x2=n/w;
    if(x1%2==0) y1=m%w;
    else y1=w-1-m%w;
    if(x2%2==0) y2=n%w;
    else y2=w-1-n%w;
    cout<<abs(x1-x2)+abs(y1-y2)<<endl;
    return 0;
}
/*
0 1 2 3 4 5 0
0 1 2 3 4 5 1
10 9 8 7 6 2
行号:n/w;
列号:偶数:n%w
奇数:w-1-n%w
因为蛇形
所以在奇偶行不一样
奇数行需要翻转一下
*/

找规律吧,具体细品

标签:m%,y2,int,n%,距离,include,y1,移动
来源: https://www.cnblogs.com/ccwz7/p/16104607.html