ZCMU-1731

来源:互联网 发布:免费教学软件下载 编辑:程序博客网 时间:2024/04/29 23:49

1731: E

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 141  Solved: 91
[Submit][Status][Web Board]

Description

已知有一个圆心为(x, y)半径为r的圆,赵栋栋想要把这个圆的圆心转变成(x’, y’)。对于每一步操作来说,赵栋栋可以选择圆上的任意一点,并且使这个圆绕着这个点旋转任意角度。赵栋栋想要知道他最少需要几步操作才能使圆心从(x, y)变为(x’, y’)

Input

  输入包含多组测试数据。每组测试数据的第一行有五个正整数rxyx’y’(1 <= r <= 10000, -10000 <= x, y, x’, y’ <= 10000)

Output

对于每组测试数据,输出一行,代表最少需要的操作数。

Sample Input

2 0 0 0 4
1 1 1 4 4
4 5 6 5 6

Sample Output

1
3
0

HINT

对于第一个例子:


【解析】
作为一个数学渣渣表示很不服,其实这道题就是计算两圆心的距离再和直径进行比较减去直径循环,直到距离小于0,这样就能知道需要旋转多少次了
#include<iostream>#include<cstdio>#include<cmath>using namespace std;int main(){    int x1,x2,y1,y2;    int n,count;    double m;    while(~scanf("%d",&n))    {        count=0;    cin>>x1>>y1>>x2>>y2;    m=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));    while(m>0)    {        m=m-2*n;        count++;    }    cout<<count<<endl;    }    return 0;}

0 0