注册 登录
编程论坛 C++教室

求大虾指点!我哪里错了?

jlee520 发布于 2012-11-28 20:24, 293 次点击
题目:编写程序: 从键盘输入n,计算1!+2!+3!+4!+……+n!#include <iostream.h>
int main()
{
    int n,b,sum;
    b=1;
    sum=0;
    cout<<"n的阶乘是:";
    cin>>n;
    for(n=1; ;n++)
    {  
      n=b*n;
      sum=sum+n;
      break;
    }
      cout<<sum<<endl;
      system("pause");
}
4 回复
#2
青春无限2012-11-28 21:37
#include"iostream.h"#include"windows.h"void main(){ int A(int n);//递归求阶乘 cout<<"请输入N值:"; int i,N,sum=0; cin>>N; if(N>0) {  for(i=N;i>=1;i--)  {   sum+=A(i);  }  cout<<"结果:"<<sum<<endl; } else  cout<<"N必须为正整数!\n";    system("pause");}int A(int n){ if(n>1)  return A(n-1)*n; if(n==1)  return 1;}
#3
azzbcc2012-11-28 22:18
先百度break怎么用
#4
wuxia1111112012-11-29 00:18
//题目:编写程序: 从键盘输入n,计算1!+2!+3!+4!+……+n!
#include <iostream.h>
#include<stdlib.h>
int main()
{
    int n,b,sum;
    b=1;
    sum=0;
    cout<<"请输入n:";
    cin>>n;
    for(int i=1;i<=n;i++)//原来输入的n相当于没有用,因为又给n赋值了
    {  
      b=i*b;          //原来n=b*n,b=1,此式等价为n=n;
      sum=sum+b;
      //break;    //break用的不对,执行第一步就跳出循环了
    }
    cout<<"n的阶乘是:";  
    cout<<sum<<endl;
     system("pause");//system函数包含在<stdlib.h>头文件中
     
}
#5
StarFall2012-11-29 06:29
。。 用双循环吧。。 你都给n赋值了 还n=1....        
for(int i=1;i<=n;i++)
                 {       b=1;      
         for(int j=1;j<=i;j++)
         b*=j;
sum+=b;              
   }
cout<<sum<<endl;



顺便一提 ,用int值装不下这个结果。 最好float
1