平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。(题目来源洛谷)
题目描述
求出绳子的长度
输入格式
第1行两个数:整数N(1<=N<=100)和实数R。
接下来N行按逆时针顺序给出N个钉子中心的坐标
坐标的绝对值不超过100。
输出格式
一个数,绳子的长度,精确到小数点后2位。
代码及运行结果如下:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n,r,i;
float x[100],y[100];
double l=0.0,m,c;
scanf("%d %d",&n,&r);
for(i=0;i<n;i++)
{
scanf("%f %f",&x[i],&y[i]);
}
for(i=0;i<n-1;i++)
{
l=l+sqrt((x[i]-x[i+1])*(x[i]-x[i+1])+(y[i]-y[i+1])*(y[i]-y[i+1]));
}
m=sqrt((x[n-1]-x[0])*(x[n-1]-x[0])+(y[n-1]-y[0])*(y[n-1]-y[0]));
l=l+m;
c=((2*3.14*r)/n)*n;
l=l+c;
printf("%.2f\n",l);
return 0;
}
运行结果: