//定义加输入
if (a<0) {
a = 0-a;
}
if (b<0) {
b = 0-b;
}
int c = a+b;
if (c>step) {
printf("No\n");
} else if (c==step) {
printf("Yes\n");
} else {
if (0==(step-c)%2) {
printf("Yes\n");
} else {
printf("No\n");
}
}
给你说一下思路:因为小明方向感不好所以做到小红家时,有可能会继续往前走,假设继续往前走了 k 步那么再走回小红加也要走 k 步,一来一回走了 2*k 步是一个偶数,所以 小明走的步数-正常情况下要走的步数 n ,如果这个明白了就可以写一下代码了if((n-step)%2==0)cout<<"Yes";而正常情况下走的步数 n 怎么球呢? 其实很简单就是小红的的坐标 (x1,y1) 中 n=x1+y1 。但是现在还没完! 为什么呢如果小明走的步数 step<n 连小红的家都走不到也是没有可能的
代码(有备注)
int a,b,step;
int main(){
cin>>a>>b>>step;
if(step<a+b)cout<<"No";//如果step都走不到小红家输出No
else if((step-a-b)%2!=0)cout<<"No";//根据上文说的如果step-a-b不是偶数则输出No
else cout<<"Yes";
return 0;
}