背景
平面上有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; }