”正多边形的逼近“求π的近似值

突然碰到这道题,如图
这里写图片描述

将圆半径设为1,正六边形边长正好等于半径即1

这里写图片描述
这样,由正六边形边长就可以求出正十二边形的,以此类推24,48…
由于圆的周长近似认为等于内接正多边形的周长(正多边形边数越大,越接近),所以就可以求出π了

已下是代码:

# include<stdio.h>
# include<math.h>

int main()
{
    //=======================定义变量===========================
    int iSelect;
    int n_1;//正多边形的边数
    double iSide=1;
    double PI;
    int i_1;//for循环里面的
    double temp;


    printf("欢迎来到第15组,考试报名管理\n");
    printf("1:求π的近似值\n");
    printf("2:黑白子交换\n");
    printf("3:开始报名管理\n");
    printf("请输入对应的数字选择要进行的项目:");

    scanf("%d",&iSelect);

    switch(iSelect)
    {
    //==========================1==============================
    case 1:
        printf("假设圆半径为1\n");
        printf("正6边形,π=3\n");
        for(i_1=0,n_1=12;i_1<20;i_1++,n_1*=2)
        {
            iSide=(double)sqrt(2-sqrt(4-iSide*iSide));
            PI=(double)n_1*iSide/2;
            printf("正%d边形,边长=%.15f\tπ=%.15f\n",n_1,iSide,PI);
        }

        break;



    //==========================2==============================
    case 2:

        break;



    //==========================3==============================
    case 3:

        break;

    }

    return 0;
}

由于double精度问题,可能误差有点大,主要是弄懂怎么做的就可以了
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值