看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《jason12308 (jason12308)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) 問一下,我這樣寫應該是沒有寫錯吧? 因為我按照答案給的 n 輸入10 去看總數 發現解答的 數質只有2.718 可是我跑出來有 2.929 但是我看來看去又覺得我應該沒錯 所以想問一下是不是哪邊有問題?? float sum=0.0; int i,n; printf("Please input a number n :"); scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+1.0/i; } printf("1+1/2+1/3+...+1/n 的總和 = %.4f",sum); : 遇到的問題: (題意請描述清楚) : 小弟打了一些…想說從簡單的1+1/2+1/3+1/4+1/5就可以往後推了,但就是打不出來耶 : 希望得到的正確結果: : 算出來是2.8x : 程式跑出來的錯誤結果: : 但程式只會跑出 1? : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : Dev-C++ : 有問題的code: (請善用置底文標色功能) : int sum=0; : for (int a=1; a<=5;a++) : { : sum=sum+1/a; : } : cout <<sum << endl; : 補充說明: : 打了1個多小時…居然生不出半點東西來…快瘋了(新手… -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.103.170
brettchen:我直接用計算機算也是你的答案 05/07 02:24
brettchen:如果從答案看,原題目應該是要逼近 e 的值 05/07 02:26
brettchen:所以算式應該是 sum(1/(n!)) n = 0~無限大 05/07 02:27
kingofsdtw:印象中會有float進位的問題,預設好像是6(包含.) 05/07 11:19
kingofsdtw:http://codepad.org/5LeuQxE5 追蹤起來好像沒錯0.0/ 05/07 12:47
suhorng:不對啊 逼近e的是 1/1! + 1/2! + 1/3! + 1/4! + ... 05/07 20:46
suhorng:Σ1/n 的話這沒錯 05/07 20:46
NCKU:1+1/2+1/3+...+1/n是發散 分母有!才是逼近e 05/07 22:09
EdisonX:∫ln(x) dx = Σ1/n , 應非發散數列。 05/07 23:47
EdisonX:寫錯,是 ln(x) = ∫1/n dn , nε[1,x] 05/07 23:49
bbbing:ln(∞)也是∞啊 05/08 00:12
EdisonX:嗯, 是我推錯了, 謝謝 b 大指正。 05/08 00:24