题解#转载
2024-07-18 17:56:47
发布于:浙江
7阅读
0回复
0点赞
原题+题解作者
CODE
#include<cmath>
#include<cstdio>
#include<iostream>
using namespace std;
struct Cyl
{
double x,y;
}point[105];
const double pi=3.1415792653589793238462643;
int n;
double r;
double dis(Cyl a,Cyl b)
{
return sqrt(pow(a.x-b.x,2)+pow(b.y-a.y,2)); // 距离公式
}
double calc()
{
double c=pi*r*2,s=0;
s+=dis(point[1],point[n]); // 第1个点到第n个点的距离
for(int i=1;i<n;i++)
s+=dis(point[i],point[i+1]); // 直边长度
return c+s;
}
int main()
{
cin>>n>>r;
for(int i=1;i<=n;i++)
cin>>point[i].x>>point[i].y;
printf("%.2lf",calc());
return 0;
}
这里空空如也
有帮助,赞一个