编写一个函数求n!, 并编写主函数调用该函数 计算e=1+I/1!+1/2!+1/3!+...+1/n!:当n=10时结束。

如题所述

#include <iostream>
using namespace std;
void main()
{
float fun(int);
float e=1.0;
int i,n;
cout<<"请输入N的值"<<endl;
cin>>n;
for(i=1;i<=n;i++)
e+=1/(fun(i));
cout<<"所求结果为:"<<e<<endl;
}

float fun(int x)
{
int i;
float y=1.0;
for(i=1;i<=x;i++)
y=y*i;
return y;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-05
int asw (int n) /*求阶乘*/
{
long m=1;
while(n>=1)
{
m=m*n;
n--;
}
return m;
}

float aswe()
{
int i;
float m=0.0;
for(i=1;i<=10;i++)
{
m+=1/(float)asw(i);
}
return m;
}

main()
{
int n;
float m;
scanf("%d",&n);
m=aswe();
printf("%f\n",m);
}
第2个回答  2011-01-08
递归之~~
#include"iostream"
using namespace std;
int n;
float F(int n){
if(n==1){return 1;}
else return n*F(n-1);
}
float e(int n){
if(n==1){return 1;}
else return 1/F(n)+e(n-1);
}
int main(){
cout<<1+e(10)<<endl;
return 0;
}运行结果是2.71828
第3个回答  2011-01-08
#include<stdio.h>
int jiecheng(int);
void main()
{
float e=1;
for(int i=1;i<=10;i++)
e=e+(float)1/(float)jiecheng(i);
printf("e=%2.7f",e);
}
int jiecheng(int i)
{
int m=1;
for(;i>=1;i--)
m=m*i;
return m;
}本回答被提问者和网友采纳