所属年份:2011.3
请编写函数fun,其功能是:计算并输出下列多项式的值。
例如,在主函数中从键盘为n输入50后,输出为S=1.718282。
#include <stdio.h> double fun(int n) { } int main() { int n; double s; printf("\nInput n: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n\n",s); return 0; }
【解题思路】
本题要求计算并输出多项式的值,通式为:1/(1*2*……*n),在给出的参考程序中,由于函数的返回值为双精度型,所以定义sum、tmp为双精度型,再对符合条件的n,使用中间变量tmp求出1到n的累乘值,即题目中每个多项式中分子的值,再通过sum+=1.0/tmp;计算出所有多项式之和,最终返回值。
【参考答案】
double fun(int n) { double sum=0, t=1; int i; for(i=1; i<=n; i++) { t = t*i; sum += 1/t; } return sum; }