绕钉子的绳子

题目描述

平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。

现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。

输入

第1行两个数:整数N(1<=N<=100)和实数R。

接下来N行按逆时针顺序给出N个钉子中心的坐标
坐标的绝对值不超过100

输出

一个数,绳子的长度,精确到小数点后2位。

样例输入

4 1

0.0 0.0

2.0 0.0

2.0 2.0

0.0 2.0

样例输出

14.28


解题思路


由画图及数学原理可知,绳子的长度=n个点围成的多边形的距离+一个圆周长度


代码

#include
#include
#include
#define pi 3.1415926

struct zb
{
    float x;
    float y;
};

int main()
{
    int n;
    int i,j;
    float sum=0,l,r;
    struct zb a[1000];

    scanf("%d%f",&n,&r);

    l=pi*r*2;

        for(i=0;i



你可能感兴趣的:(绕钉子的绳子)