刷题:蘑菇街最小移动次数
题目描述
现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1)。每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转。问最少需要移动几步。
输入描述:
一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000)
输出描述:
输出一个整数,表示答案
输入例子:
2 0 0 0 4
输出例子:
1
#include<iostream> #include<math.h> using namespace std; int main() { long long r; while(cin>>r) { long long x; long long y; long long x1; long long y1; cin>>x>>y>>x1>>y1; long long disx=abs(x-x1)*abs(x-x1); long long disy=abs(y-y1)*abs(y-y1); double dis=sqrt(disx+disy); int d=dis/(r*2); if(dis-d*r*2)cout<<d+1<<endl; else cout<<d<<endl; } return 0; }