AcWing 3629. 同心圆涂色 带注释
原题链接
简单
作者:
蓬蒿人
,
2021-06-04 19:51:48
,
所有人可见
,
阅读 468
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const double pi = 3.1415926535897;//93...
// 由于我们的最外层的圆环必定是蓝色
// 所以面积就为最大半径园面积-里层圆面积+再里层-再再里层+...
// 模拟到最里面的圆就行了
// 一个圆的面积是加是减看他是奇数层还是偶数层
// ps:本题如果定义的pi精度不够高 是会出错的
// 因为本题r最大取1000 结果要保留六位小数 所以pi至少要定义到小数点后第13位 是
//当然如果忘了pi等于多少可以调<cmath>头文件 用acos(-1)得到pi精度是够的
//acos(-1)=pi原理的话 就要知道accos函数是 计算arccos()值的函数
//arccos是反余弦 若cos(a)=b 则arccos(b)=a
//所以 因为cos(pi)=-1 则crccos(-1)=pi;
int n;
int main()
{
cin>>n;
int a[110];
for (int i=1;i<=n;i++){
scanf ("%d",&a[i]);
}
sort(a+1,a+n+1);
double ans=0;
int j=1;
for (int i=n;i>=1;i--){
ans+=j*pi*a[i]*a[i];
j*=-1;
}
printf ("%.6f\n",ans);
return 0;
}