搬圆桌

来源:互联网 发布:淘宝恶意退款警察管吗 编辑:程序博客网 时间:2024/04/30 01:28


现在有一张半径为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<algorithm>using namespace std;int fun(int r){    int x, y, x1, y1;    cin>>x>>y>>x1>>y1;        double tx = x - x1;    double ty = y - y1;        double distance = sqrt(tx*tx + ty*ty);    return (int)distance/(2*r) + (fmod(distance, 2*r)>0.0 ? 1 : 0);}int main(){    int r;    while(cin>>r){        int res = fun(r);        cout<<res<<endl;    }    return 0;}


0 0
原创粉丝点击