✔ 最佳答案
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
double val(int n)
{ if (n >= 2)
return val(n-1) + (n&1?1.:-1.)/n;
return 1;
}
int main()
{ int i;
for (i=1; i<100; ++i)
cout << setw(3) << i << " = " << setprecision(18) << val(i) << '\n';
system("pause");
return 0;
}
2009-04-23 10:49:51 補充:
如果 C 也可以,那
cstdlib 換成 stdlib.h
iomanip 及 using 那兩列去掉
iostream 換成 stdio.h
cout 那列換成
printf("%3d = %.17f", i, val(i));
就可以了
2010-11-22 08:44:26 補充:
意見中評我負評的「 SoDoKoDo (研究生4級) 」於某發問者及意見者都認為極棒、並舉出多項原因說明高明回答之題,給予普通之評價。
我不過是照他亂給『普通』的習慣,給他幾題最佳解答『普通』的評價,竟招致他用同名好幾位同名的初學者5級把我所有的最佳解答全給『負評』!並其人及所有給亂評的初學者5級全數閉檔!其心可異!
如其亂評中之評語:神必在看!好自為之!