日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言pi的乘法,c语言 根据公式求出π的近似值。

發布時間:2024/9/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言pi的乘法,c语言 根据公式求出π的近似值。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

共回答了10個問題采納率:80%

#includedouble powi(double num, int multi) {

double r = 1.0;

int i;

for (i = 0; i < multi; i++) {

r *= num;

}

return r;

}

double item(int n) {

double r = 1.0;

int i;

/*1.0 * 1 / 2 * 3 / 4 * 5 / 6 .....*/

for (i = 1; i < n; i++) {

if (i % 2) {

r *= i;

/*printf("*%d", i); */

} else {

r /= i;

/*printf("/%d", i); */

}

}

r *= 1;

/*printf("*%d", 1); */

r /= n;

/*printf("/%d", n); */

r *= powi(0.5, n);

/*printf("*%lf", powi(0.5, n)); */

/*printf(" -- item %d: %lf n", n, r); */

return r;

}

int main() {

double pd6 = 0.0, ci = 0.0;

int i = 1;

do {

ci = item(i);

pd6 += ci;

i += 2;

} while (ci >= 1e-6);

printf("PI=%.6lfn", pd6 * 6);

return 0;

}完全按你的公式做的,結果真的對了,3.141592(這里對6位有效數字有個存疑,就是應該輸出6位還是7位數字,理論上有效數字后面應該帶上一個估值,用來修正有效數字的,如果要求真的那么嚴格,我可以給你寫個函數用來輸出6位有效數字)。

一般級數很少有用這個復雜的式子的吧,一般都是 1-1/3+1/5-1/7+1/9-1/11 這個式子,你的公式竟然也是對的。樓上的完全沒看懂級數的項的規律。-------------------------------------------------以上是20:29分發的回答,既然你沒有追問,我只能通過修改這個回答,慢慢解釋一下:powi函數 是為了不引用龐大的math庫,而自己寫的一個簡單的正整數冪的函數(math庫里有double pow(double, double),這個運算過程中不需要小數的冪值,就用循環乘法來實現了。item函數 是每個項的計算過程,仔細看的話可能會發現,這些項并不是 i=1,2,3,4... 而是 i=1,3,5,7... 這個是為了符合級數的項中的值,都是奇數在做運算。item里面的那些注釋掉的 printf 是故意留下用來觀察級數表達式的。由于每一項都是多個數值相乘或除,如1/2x3/4x5/6 其實就是1 * 2 / 3 * 4 ,這些printf可以在計算每一項的時候把整個過程打印出來。級數的難點其實就是找到項的通用表達式,你的公式已經把表達式寫的很清楚了,就看你把它提取成算法了

1年前

5

總結

以上是生活随笔為你收集整理的c语言pi的乘法,c语言 根据公式求出π的近似值。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。