C++算1/1!++1/2!+1/3!+...+1/N!

编写一程序P2-215.C实现以下功能
求S=1/1!+1/2!+1/3!+…+1/N!并输出结果(显示时小数部分占16位)。N为任意自然数(只考虑int型),从键盘读入。
程序的运行效果应类似地如图1所示,图1中的18是从键盘输入的内容。

第1个回答  2010-03-29

// Note:Your choice is C++ IDE

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

    double i,s=0.0;

    double k(int j);

    int n;

    cout<<"please input a number n ";

    cin>>n;

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

    s=1/k(i)+s;

    cout<<"1/1!+1/2!+……+1/"<<n<<"!= "<<setprecision(17)<<s;

    return 0;

}

double k(int j)

{

 if(j==1)return 1;

 else

 return k(j-1)*j;

}

搞定,这ok

第2个回答  2010-03-29
#include <stdio.h>
void main()
{
int n,i,j,temp=1;
double sum=0.0;
printf("please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
temp*=j;
sum+=(1/temp);
}
printf("s=1/1!+1/2!+...+1/%d!=%.16lf\n",n,sum);
}
第3个回答  2010-03-29
#include<stdio.h>

int a=1;
double funs(int n){
double s=0,t;int i;
for(i=1;i<=n;i++){
a=a*i;

t=1.0/a;
s=s+t;

}
return s;
}
void main(){
int n;
printf("请输入n\n");
scanf("%d",&n);
printf("%.16f",funs(n));

}
第4个回答  2010-03-29
学编程应该自己多想想
#include "stdafx.h"
#include "stdio.h"

int main(int argc, char* argv[])
{
int n,t=1;
double s=0.0;
printf("Please input n:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
t=t*i;
s=s+1.0/t;
}
printf("s=1/1!+1/2!+...+1/%d!=%.16f\n",n,s);
return 0;
}
第5个回答  2010-03-29
什么目的呢?做作业?还是学习?

恕我多嘴,这种程度的递归应该自己搞定,如果将来想在C方面发展的话.

一道C语言题, 计算1 + 1\/1!+1\/2!+1\/3!+...+1\/n!.帮忙改下程序
aa ( int n){ if(n==1L)return 1.0;else return (n*aa(n-1));} void main(){ int x;float sum=1,y;scanf("%d",&x);for(int i=1;i<=x;i++){ sum=sum+1.0\/(y=aa(i));} printf("1+1\/1!+1\/2!+1\/3!+...+1\/n!=%f\\n",sum);} 程序也许不是最简单的!但...

以下程序的功能是调用函数fun计算1\/1!+1\/2!+1\/3!+...+1\/n!的值,并输...
printf("Output:\\nS=1\/1!+1\/2!+...+1\/%d!=%.16f\\n", n, Sum);return 0;} void fun(double *sn, int n){ int i;double Sum=0, jc=1;for (i=1; i<=n; i++){ jc *= i;Sum += 1 \/ jc;} \/* 考生可在本行后添加代码、最多1行、行长<=30字符) *\/ \/***start...

c语言编程题,求e的近似值,e=1\/1!+1\/2!+1\/3!+...+1\/n!,累加项小于1
正确的公式为:e=1+1\/1!+1\/2!+1\/3!+...+1\/n!代码实现如下:include<stdio.h> int fun(int n){ if(n == 1)return 1;return n*fun(n-1);} int main(){ double sum =1.0 ;int i = 1;while((1.0\/fun(i))>=1e-8){ sum +=(1.0\/fun(i));i++;} printf("%.8...

C语言问题 计算s=1\/1!+1\/2!+1\/3!+...+1\/n!(n<20,从键盘输入)
int main(void){ int n,i,t;double sum=0;printf("输入n:\\n");scanf("%d",&n);for(i=1;i<=n;i++){ t*=i;sum+=1.0\/t; \/*由于sum是浮点数 所以要用这个形势 } printf("sum=%lf",sum);return 0;} 这种写法因该是标准的!仅供参考 ...

求C语言编程,e=1+1\/1!+1\/2!+1\/3!+...+1\/n!,精确度1e-6
include<iostream> using namespace std;int main(){ int i=1;double e=1.0,d=1.0;while(d>=1e-6){ d=d\/i;e+=d;i++;} cout<<"e的值为:"<<e<<endl;return 0;}

C++ 编写函数,计算1\/1!+1\/2!+1\/3!+ … +1\/n!。在主函数中输入n的值...
include<iostream>#include<cmath>#include<iomanip>double fun(int a);int main(){using namespace std;int n = 0;double result;cout << "Enter the number:";cin >> n;cin.get();result = fun(n);cout << setiosflags(ios::fixed) << setprecision(2) << result << "\\n";return...

用C\\C++语言编写1+1\/2!+1+3!+...1\/n!求值,帮帮我啊~~
double sumb(int n){ int i,t = 1;double sumb = 0;for(i=1;i<=n;i++){ t *= i;sum+=1.0\/ t;} } void main(){ int n;scanf("%d",&n);printf("1+1\/2!+1\/3!+...1\/n!的值为:%f",sumb(n));}

编写C程序:求1\/1!+1\/2!+1\/3!+...+1\/n!(n!=1*2*3*4...n)急!急!帮帮啊...
include <stdio.h> main(){ int i,n,j=1;double sum=0;printf("输入n的值:");scanf("%d",&n);for(i=1;i<=n;i++){ j=j*i;sum=sum+(1\/double(j));printf("%d ,%f\\n",j,sum);} printf("sum=%f\\n",sum);}

c++计算1+1\/2+1\/3+...+1\/n
include"stdio.h"define n 100 float f(float a){float b;b=1.0\/a;return b;} main(){float sum=0;int i=1;for(i=1;i<n;i++)sum+=f((float)i);printf("%lf",sum);} 你先这么整吧,你那个我CPP运行不了

C语言1\/1+1\/2+1\/3...+1\/n,求和
int i,s1=0,s2=0,s3=0;。2、使用for语句实现:代码段:for(i=1;i<=10;i++)\/\/for语句部分{s1+=i;}printf("s1=%d\\n",s1);。3、使用while语句实现:代码段。4、接着使用do..while语句实现。5、最后运行结果:S1=55;S2=55;S3=55;结果运行都是正确的,这样就完成了。

相似回答