OceanCat现在很饿,他要去买零食吃,但是很不幸,OceanCat被传送到了一个二维世界,但是又不是完全不幸,因为OceanCat得到了一个超能力,即如果你当前所在位置到某个横纵坐标都是整数的点的距离是整数,那么你就可以瞬移到那个点,但是OceanCat也因此失去了走路的能力。
现在OceanCat位于点(0,0),零食店位于点(x,y),问OceanCat至少需要瞬移多少次才能到达零食店?
如有帮助,请点击我评论上方【采纳该答案】按钮支持一下,谢谢!以后有什么问题可以互相交流。
如果能直接到的距离是整数是一次,其他情况两次,先到(0,y)再到(x,y)
#include <stdio.h>
#include <math.h>
int main()
{
int x,y;
scanf("%d %d",&x,&y);
if(fabs((sqrt(x*x+y*y)-int(sqrt(x*x+y*y))))<1e-4)
printf("一次");
else
printf("两次");
}
如果你当前所在位置到某个横纵坐标都是整数的点的距离是整数---啥意思???
从(0,0)到(x,0)再到(x,y)不就完事了么
不知道你现在学习到什麽阶段,是复杂题还是简单题
#include <stdio.h>
#include <math.h>
int main()
{
int x,y,z;
printf("输入目的地坐标:");
scanf("%d%d",&x,&y);
z=sqrt(x*x+y*y);
if(fabs(z-(int)z) < 1e-6)
printf("只需要移动一次即可到达(%d,%d)坐标",x,y);
else
printf("需要移动两次到达(%d,%d)坐标",x,y);
return 0;
}
#include <stdio.h>
#include <math.h>
int main()
{
int x,y;
scanf("%d %d",&x,&y);
if(fabs((sqrt(xx+yy)-int(sqrt(xx+yy))))<1e-4)
printf("一次");
else
printf("两次");
}