#include
using namespace std;
void main()
{
bool odd;
int n,k;
double Pi,PI;
cout<<\"Enter the k value =\";
cin>>k;
PI=1;
for(n=1;n<=k;n++)
{
if(n==1) odd=true;
else int odd = n%2;
if(odd==true)
Pi=Pi-1/(2*n+1);
else
Pi=Pi+1/(2*n+1);
}
PI=4*Pi;
cout<<\"k=\"<
我ㄉPI=π,Pi=4/π.
答案要π=3.14
哪ㄍ好心人 幫一下ㄅ
2006-05-24 17:14:07 · 2 個解答 · 發問者 雪花飄 3 in 電腦與網際網路 ➔ 程式設計
#include
using namespace std;
void main()
{
bool odd;
int n,k;
double Pi,PI;
cout<<"Enter the k value =";
cin>>k;
Pi=1;
for(n=1;n<=k;n++)
{
if(n==1) odd=true;
else odd = n%2;
if(odd==true)
Pi=Pi-1.0/(2*n+1);
else
Pi=Pi+1.0/(2*n+1);
}
PI=4*Pi;
cout<<"k="<
只改比較有問題的部分,其他沒改
這個方法收斂的很慢,k要輸入大一點的值
2006-05-25 21:41:23 補充:
k其實沒什麼範圍,就是越大越準,以它宣告為int來說在Win32下最大是2147483647,但這麼大要跑很久,而且要調整小數點後顯示的位數才看的出來. 我試k=100時,PI=3.15149, k=1000時PI=3.14259, k=500000時PI=3.14159,你可以自己多試一試,就能感受到它的一些特性.
2006-05-25 11:09:10 · answer #1 · answered by chan 5 · 0⤊ 0⤋
能給我K值ㄉ範圍ㄇ
2006-05-25 15:42:50 · answer #2 · answered by 雪花飄 3 · 0⤊ 0⤋