永发信息网

请大家解答一道编程的题目

答案:4  悬赏:50  手机版
解决时间 2021-07-17 14:19
  • 提问者网友:末路
  • 2021-07-17 03:30

e=1+1/1!+1/2!+1/3!+1/4!+...........+1/(n-1)!+1/n!

用C语言编写,并且请大家谈谈思路

谢谢

最佳答案
  • 五星知识达人网友:山君与见山
  • 2021-07-17 03:43

#include <stdio.h>


void main()
{
//由于不确定N的取值.所以用double类型存放阶乘结果.顺便也将e定义成double了.
double e,k;
int i,n;
scanf( "%d", &n );


k = 1;
e = 1;


for(i = 1; i <= n; i++) //从1循环到n. 每次循环都计算1到i当前数的阶乘.
{
k *= i; //i的阶乘...直到i等于n
e += 1.0 / k; //每次都让e加上1/i!
}
printf( "%lf\n", e ); //输出e
}

全部回答
  • 1楼网友:你哪知我潦倒为你
  • 2021-07-17 06:21

函数就是用两重循环。

double jiecheng()

{

int i,j,t=1,n;

double s=1.0;

printf("input n: ");

scanf("%d",&n);

for(i=0;i<n;i++)

{

for(j=1;j<=n;j++)

t*=i;

s+=1/t;

}

return s;

}

  • 2楼网友:毛毛
  • 2021-07-17 05:13

就递归阶乘 循环加

注意类型的一致即可

#include<iostream.h> double jc(int n) { double jg; if(n==0){ jg=1;} else { jg=n*jc(n-1); } return jg; } int main() { int n; cout<<"please input a number:"; cin>>n; double e=1; for(int i=1;i<=n;i++) { e=e+1/jc(i); } cout<<e<<endl; return 0; }

我用的是c++ 你改改输入输出格式应该就没问题了

  • 3楼网友:逃夭
  • 2021-07-17 04:19

两个循环,n个数用一个循环,每个数分母的阶乘再用一个循环

#include <stdio.h> int main()

{

int i,j,m=1,n; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) m*=j; sum+=1.0/m; } printf("sum=%lf",sum); return 0; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯