用C++实现阶乘

cissyqz 2009-03-29 09:50:03
我使用递归来实现阶乘,要计算一个公式e=1/(0!+1!+2!+...+n!),我使用的是DEV-C++编译器,但是不能编译,有错误。
代码如下:
#include <cstdlib>
#include <iostream>

using namespace std;
double f(int i);

int main(int argc, char *argv[])
{
system("PAUSE");

double e;
int n;
cout<<"n e"<<endl;
cout<<"- -----------"<<endl;
while(cin>>n)
{
for(int i=0;i<=n;i++)
{
e=1.0/f(i);
}
cout<<e<<endl;
}

return EXIT_SUCCESS;
}

double f(int i)
{
if(i==0)
{
return 1;
}
else
{
f(i)=i*f(i-1);
}

}
...全文
190 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
grellen 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 mengde007 的回复:]
引用 6 楼 grellen 的回复:
C/C++ code#include <iostream>usingnamespacestd;
template <intn>structFactorial
{enum{ value=n*Factorial <n-1>::value };//模板能用变量吗……好好看看书吧
};
template <>structFactorial <0>{enum{ value=1};
};intmain()
{
cout < <Factorial <5>::value < <endl;return0;
}
[/Quote]

我有说可以吗,编译期计算的当然不可以了,我只是发了一个阶乘的实现而已
speeder53 2009-03-29
  • 打赏
  • 举报
回复
...mk
mengde007 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 grellen 的回复:]
C/C++ code#include<iostream>usingnamespacestd;
template<intn>structFactorial
{enum{ value=n*Factorial<n-1>::value };//模板能用变量吗……好好看看书吧
};
template<>structFactorial<0>{enum{ value=1};
};intmain()
{
cout<<Factorial<5>::value<<endl;return0;
}
[/Quote]
王旺旺旺 2009-03-29
  • 打赏
  • 举报
回复
楼上就别显摆了。
你那个5不能用变量
grellen 2009-03-29
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
template<int n>
struct Factorial
{
enum { value = n * Factorial<n-1>::value };
};
template<>
struct Factorial<0>
{
enum { value = 1 };
};
int main()
{
cout<<Factorial<5>::value<<endl;
return 0;
}
fairchild811 2009-03-29
  • 打赏
  • 举报
回复
lz搞定就ok了,接分
grellen 2009-03-29
  • 打赏
  • 举报
回复
e
zhaochuanbiao 2009-03-29
  • 打赏
  • 举报
回复
顶楼上的!
mengde007 2009-03-29
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
//system("PAUSE");
int n;
cin>>n;
int sum=0,a=1;
for(int i=1;i<=n;i++)
{
a=a*i;
sum=sum+a;
}
cout<<endl<<sum<<endl;
return 0;
}


现给出阶乘计算
cissyqz 2009-03-29
  • 打赏
  • 举报
回复
我知道我自己的错误了 呵呵
return i*f(i-1);

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧