二、簡單應(yīng)用題
請編寫函數(shù)fun(),其功能是計(jì)算并輸出下列多項(xiàng)式值
Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!
例如:從鍵盤輸入15,則輸出為s=2.718282。
注意:部分源程序以存在文件kt17_2.cpp中。
請勿改動主函數(shù)main和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的花括號中填入所編寫的若干語句。
文件kt17_2.cpp的內(nèi)容如下:
#include
#include
doublefun(intn)
{
}
voidmain()
{ int n;
doubles;
cout<<"Inputn:"<
cin>>n;
s=fun(n);
cout<<"s="<
【參考答案】
double fun(int n)
{ double t,sn=1.0;
int i,j;
for(i=1;i<=n;i++)
{ t=1.0;
for(j=1;j<=i;j++)
t*=j;
sn+=1.0/t; }
return sn; }
【試題解析】
本題解法是通過觀察所給的多項(xiàng)式,可以找出該多項(xiàng)式相應(yīng)的數(shù)學(xué)規(guī)律。本題中,多項(xiàng)式是一個(gè)累加求和的多項(xiàng)式,并且每一項(xiàng)總是比前一項(xiàng)多乘一個(gè)整數(shù),所乘整數(shù)恰好等于每一項(xiàng)的編號,這樣利用循環(huán)語句進(jìn)行階乘、累加就可以實(shí)現(xiàn)功能。由于函數(shù)中出現(xiàn)了"/"的運(yùn)算,所以最終的函數(shù)值要考慮到用double類型。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |