BOJ 439. 崔逗逗的难题

本文详细介绍了如何通过数学公式解决正方形被四个半圆分割成三部分的面积计算问题,并提供了相应的C++代码实现。文章特别注意到了double类型在计算中的精度问题,提出了使用longdouble或者减少乘除运算的解决方案。

题意:一个正方形被四个半圆分成了3部分,给出正方形的边长,求每个部分的面积

数学题,看代码吧。

坑:double 的精度问题 用long double或者减少乘除运算

代码:

#include <cstdio>
#include <cmath>
 
const double PI  = acos(-1.0);
const double GEN = sqrt(3.0);
 
using namespace std;
 
int main(void)
{
    double s1 = (3.0 - 3.0*GEN + PI )/3.0;
    double s2 = (PI + 6.0 *GEN- 12.0) / 3.0;
    double s3 = (12.0 - 3.0*GEN - 2.0*PI) / 3.0;
    double a;
    while(scanf("%lf", &a) != EOF){
        printf("%.6f %.6f %.6f\n",s1 * a * a,  s2 * a * a, s3 * a * a);
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值