刷题:蘑菇街最小移动次数

题目描述

现在有一张半径为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;
}

 

posted on 2016-03-30 20:16  RenewDo  阅读(131)  评论(0编辑  收藏  举报

导航