利用循環語句計算π的近似值!
公式:π/4≈1-1/3+1/5-1/7...... 直到發現某一項小於10-6。
while的寫法(兩種)
一、
1 #include<stdio.h> 2 int main() 3 { 4 int m=1,n=1; //m為項數,n為分母 5 double t=1.0/1,s=0; //t為每一項的值,s為計算結果 6 while(t>=1e-6) 7 { 8 if(m%2==1) //項數為奇數時加 9 { 10 s=s+t; 11 } 12 else //項數為偶數時減 13 { 14 s=s-t; 15 } 16 n=n+2; //分母值 17 t=1.0/n; //計算新一項的值 18 m++; //項數加一 19 } 20 printf("%lf\n",s*4); 21 return 0; 22 }
二、
1 #include<stdio.h> 2 int main() 3 { 4 int n=1,m=1; //n為分母,m為正負號的標記,第一項為正 5 double t=1.0,s=0; 6 while(t>=1e-6) 7 { 8 s=s+t*m; //一項的值乘以正負標記 9 n=n+2; 10 t=1.0/n; 11 m=-m; //改變符號 12 } 13 printf("%lf\n",s*4); 14 return 0; 15 }
還可以用for語句寫
1 #include<stdio.h> 2 int main() 3 { 4 int n,m=1; 5 double s=0; 6 for(n=1;n<=1E6;n=n+2) //某一項小於10^-6說明分母大於10^6 7 { 8 s=s+(1.0/n)*m; 9 m=-m; 10 } 11 printf("%lf\n",s*4); 12 return 0; 13 }
原文:http://www.cnblogs.com/houraisan-kaguya/p/4140739.html