如何编写代码实现移动距离效果

这篇文章主要介绍“如何编写代码实现移动距离效果”,在日常操作中,相信很多人在如何编写代码实现移动距离效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写代码实现移动距离效果”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

曼哈顿距离——折线距离;
欧几里德距离——直线距离;
蛇形存储的二维数组,行号用/宽度,列号用%宽度并在偶数行加特判。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>

using namespace std;

int w,m,n;

int main(){
    cin>>w>>m>>n;
    //为了免除整除的特判,将每个楼号数都减1
    m--,n--;
    //行号
    int x1=m/w,x2=n/w;
    //列号(蛇形————偶数行特判)
    int y1=m%w,y2=n%w;
    if(x1%2) y1=w-1-y1;
    if(x2%2) y2=w-1-y2;
    cout<< abs(x1-x2)+abs(y1-y2)<<endl;
    return 0;
}

到此,关于“如何编写代码实现移动距离效果”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!