文章作者:姜南(Slyar)文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
背景 Background
平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。
现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。
描述 Description
求出绳子的长度
输入格式 Input Format
第1行两个数:整数N(1<=N<=100)和实数R。
接下来N行按逆时针顺序给出N个钉子中心的坐标
坐标的绝对值不超过100。
输出格式 Output Format
一个数,绳子的长度,精确到小数点后2位。
Tip:算一个木桩的周长,再用两点间距离公式算剩下的长度就行了,需要注意的是不要忘记把最后一个点和第一个点之间的线段加上去。还需要注意精度问题。
#include
#include
#define pi 3.1415926
int i,n,t;
double c,r,length;
double x[101],y[101];
main(){
scanf(“%d%lf”,&n,&r);
for (i=1;i<=n;i++) scanf(“%lf%lf”,&x[i],&y[i]);
x[n+1]=x[1];
y[n+1]=y[1];
for (t=1;t<=n;t++) length+=sqrt(pow((x[t]-x[t+1]),2)+pow((y[t]-y[t+1]),2));
c=2*pi*r;
length+=c;
printf(“%.2lf”,length);
system(“pause”);
return 0;
}