短短幾行代碼,卻也可圈可點。如把變量s放在PI語句中,避免了在循環條件中調用絕對值函數,還有正負號的處理,都非常巧妙,堪稱經典。尤其是處處考慮執行效率的思想令人敬佩。
1 /* pi/4=1-1/3+1/5-1/7+1/9-…… */ 2 #include <stdio.h> 3 int main(){ 4 int s=1; 5 float pi=0.,n=1.,t=1.; 6 while(t>1e-6) { 7 pi+=s*t; 8 n+=2.; 9 s=-s; 10 t=1./n; 11 } 12 printf("PI=%f\n",pi*4); 13 return 0; 14 }