作者tadfattly (tad)
看板C_and_CPP
標題Re: [問題] 寫 1+1/2+1/3....+1/n=
時間Mon May 7 02:10:26 2012
※ 引述《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
推 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