求PI的近似值
- 題目
- 答案
題目
求PI的近似值 (30 分)
用正多邊形逼近法求π的近似值, 用圓內接正多邊形的邊長和半徑之間的關系,不斷將邊數翻倍并求出邊長,重復這一程序,正多邊形的邊長就逐漸逼近圓的周長,只要圓內接正多邊形的邊數足夠多,就可以求得所需精度的π值, 從正六邊形開始,簡單起見,設單位圓的半徑是1,則單位圓的圓周長是2×π,設單位圓內接正i邊形的邊長為2b,邊數加倍后正2i邊形的邊長為x,則:

輸入格式:
輸入1-10的數k(圓正接多邊形邊數n=6*2^(k-1))
輸出格式:
圓內接正多邊形的邊數n和PI值,PI的值保留到小數點后10位
輸入樣例:
1
輸出樣例:
6 Pi=3.0000000000
答案
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int k;
cin>>k;
int n=6*pow(2,k-1);
double x=1,b;
int i=6;
while(i!=n)
{
b=x/2;
i*=2;
x=sqrt(2-2*sqrt(1.0-b*b));
}
printf("%d Pi=%.10lf",i,i*x/2);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287019.html
標籤:其他
