C++编写程序,计算1!+2!+3!+…+n!。。。急啊。。。

如题所述

简单 ,我就不写代码了,说下大致意思吧
就是先写个函数
int fun(int n)
{
int s=1;
for(int i=1;i<=n;i++)
s*=i;
return s;
}

然后在主函数中调用反复调用它
int main()
{
int n;
while(cin>>n)
{
int sum=0;
for(int i=1;i<=n;i++)
{
sum+=fun(i);
}
cout<<sum<<endl;
}
}
这样就可以了 我现在没编译器,但是大致就是这样的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-15
#include<iostream>
using namespace std;
int main()
{
int sum=0,j=1,n;
cout<<"请输入n的值: "<<endl;
cin>>n;
for(int i=1;i<=n;i++)
{
j=j*i;
sum=sum+j;
}
cout<<"n="<<n<<endl<<"1!+2!+3!+...+n!="<<sum<<endl;
return 0;
}本回答被提问者采纳
第2个回答  2011-11-15
public class Factorial {
public static void main(String[] args) {
long sum = 0;
for (int i = 1; i <= 11; i++) {
sum += factorial(i);

}
System.out.print("1!+2!+3!+…+11!=" + sum);
}

static long factorial(int n) {
if (n < 2)
return 1;
return n * factorial(n - 1);

}
}

java写的 应该和c++差不多的
第3个回答  2011-11-15
main()
{
float n,s=0,t=1,i;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1;i<=n;i++)
  {
  t*=i;
  s+=t;
  }
printf("1+2!+3!...+n!=%e\n",s);
}追问

编译时某有通过啊。。。有错。先说下啊,本人对C++几乎是外行。用C++语言啊,没学过C,表示有压力。。。

追答

可能是头文件的问题
在最前面加上
#include "iostream.h"

第4个回答  2011-11-15
#include<iostream.h>
long fact(long n){
long sum=1;
for(long i=1;i<=n;i++)
sum*=i;
return sum;
}
int main(){
long n;
while(cin>>n){
long sum=0;
for(long i=1;i<=n;i++)
sum+=fact(i);
cout<<sum<<endl;
}
return 0;
}
相似回答