移动距离
作者:互联网
一个蛇形矩阵,给你两个数字,求最少的移动距离:只能横着走或竖着走
这个移动的距离好求:横坐标的差+纵坐标的差
#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