背景
平面上有N个圆柱形的大钉子,半径都为R,所有钉子组成一个凸多边形。
现在你要用一条绳子把这些钉子围起来,绳子直径忽略不计。
描述
求出绳子的长度
格式
输入格式
第1行两个数:整数N(1<=N<=100)和实数R。
接下来N行按逆时针顺序给出N个钉子中心的坐标
坐标的绝对值不超过100。
输出格式
一个数,绳子的长度,精确到小数点后2位。
样例1
样例输入1[复制]
4 1 0.0 0.0 2.0 0.0 2.0 2.0 0.0 2.0
样例输出1[复制]
14.28#include<iostream> #include<math.h> #include<stdio.h> using namespace std; int main(){ double pi=3.1415 ,r; int n,i,j; float x[110],y[110],sum=0; cin>>n>>r; if(n==1) sum=2*pi*r; else { for(i=1;i<=n;i++){ cin>>x[i]>>y[i]; if(i>1 && i<=n) sum+=sqrt( (x[i-1]-x[i]) * (x[i-1]-x[i]) + (y[i-1]-y[i]) * (y[i-1]-y[i]) ) ; } sum+=sqrt( (x[n]-x[1]) * (x[n]-x[1]) + (y[n]-y[1]) * (y[n]-y[1]) ); sum+=2*pi*r; } printf("%.2f",sum); return 0; }