這是我寫的10!用for 寫的...
#pragma hdrstop
#include
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int i;
int sum;
sum=1;
for (i=1; i<=10; i++){
sum*=i;
printf ("%d\\n", sum);
}
system("pause");
return 0;
}
我要如果寫e=1+1/1!+1/2!+...1/10!呢.....我要往那方向想呢...謝謝...
2006-09-27 13:43:26 · 2 個解答 · 發問者 Thomas 3 in 電腦與網際網路 ➔ 程式設計
有完整的程式嗎...我知道再用一個for迴圈去包...再加總....可是我就是不知道如何包.......學了...三天的c語言!!!
2006-09-27 18:11:10 · update #1
除非你的 compiler 強到不行,不然答案會遠不到 2.718281828459045……。
你要〝接近〞它,要從小的數算起,加起來,才會對。
就是要用:
e = ... + 1/10! + 1/9! + ... 1/2! + 1/1! + 1/0!
階乘,知識+ 也有不少文章。自己查一下,比我在這裡 copy paste 或直接給你 link 好。
如果你真的要很多位數,要自已寫多位數除法。(知識+ 有不少文章,自己查一下。通常問到階乘的文章都會討論到多位數乘、除法。)
如果你只要 10 位左右,用 double (或 long double,要看你的 compiler 有沒有支援)就可以了。
真的找不到、或仍然做不出來再問。
加油。
祝 好運。 ^_^
2006-09-30 01:08:50 補充:
如果你只學3天,那你就用double吧!
我沒compiler,你自己試試、改改看。
void main()
{double e, t;
int i,j;
e = 1;
for (i=10;i;i--)
{ for (t=j=2;j<=i;j++) t/=j;
e += t;
printf("%17.15f", e);
system("pause");
}
2006-09-27 14:42:00 · answer #1 · answered by ? 7 · 0⤊ 0⤋
one loop就可以了!
2006-09-27 16:01:59 · answer #2 · answered by ? 4 · 0⤊ 0⤋