移动距离
回头看一年前写的代码,有点像很久之前非主流空间说说的感觉。。。
- 最重要的一点
n --,m --;
转化为曼哈顿距离之后什么细节统统不需要特殊处理
C++ 代码
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int x1,x2,y1,y2,ans;
int w,m,n;
cin>>w>>m>>n;
y1=ceil(float(m)/float(w)*1.0); //必须先转化为float类型
if(y1%2!=0)
{
if(m%w!=0)
x1=m%w;
else
x1=w;
}
else
{
if(m%w!=0)
x1=w+1-m%w;
else
x1=1;
}
y2=ceil(float(n)/float(w)*1.0);;
if(y2%2!=0)
{
if(n%w!=0)
x2=n%w;
else
x2=w;
}
else
{
if(n%w!=0)
x2=w+1-n%w;
else
x2=1;
}
ans=abs(x1-x2)+abs(y1-y2);
//cout<<x1<<" "<<y1<<" "<<x2<<" "<<y2;
cout<<ans;
return 0;
}