题意:
已知每个圆圆心的坐标和半径,求绳的长度。。
思路:
每个圆心围成的多边形的周长,加上圆的周长。
代码:
#include <iostream>
#include <cmath>
#include <iomanip>
usingnamespace std;
constdouble PI=3.141592;
typedef struct
{
double x,y;
}Point;
Point p[103];
double a[103];
int main()
{
int n;
double r;
cin>>n>>r;
cin>>p[0].x>>p[0].y;
double sum=0;
for(int i=1;i<n;i++)
{
cin>>p[i].x>>p[i].y;
sum+=sqrt((p[i].x-p[i-1].x)*(p[i].x-p[i-1].x)+(p[i].y-p[i-1].y)*(p[i].y-p[i-1].y));
}
sum+=sqrt((p[0].x-p[n-1].x)*(p[0].x-p[n-1].x)+(p[0].y-p[n-1].y)*(p[0].y-p[n-1].y));
sum+=2*PI*r;
cout<<setprecision(2)<<setiosflags(ios::fixed| ios::showpoint)<<sum<<endl;
return0;
}
#include <cmath>
#include <iomanip>
usingnamespace std;
constdouble PI=3.141592;
typedef struct
{
double x,y;
}Point;
Point p[103];
double a[103];
int main()
{
int n;
double r;
cin>>n>>r;
cin>>p[0].x>>p[0].y;
double sum=0;
for(int i=1;i<n;i++)
{
cin>>p[i].x>>p[i].y;
sum+=sqrt((p[i].x-p[i-1].x)*(p[i].x-p[i-1].x)+(p[i].y-p[i-1].y)*(p[i].y-p[i-1].y));
}
sum+=sqrt((p[0].x-p[n-1].x)*(p[0].x-p[n-1].x)+(p[0].y-p[n-1].y)*(p[0].y-p[n-1].y));
sum+=2*PI*r;
cout<<setprecision(2)<<setiosflags(ios::fixed| ios::showpoint)<<sum<<endl;
return0;
}