这个程序为什么不对啊!!

啵呗 2004-03-23 06:32:46
//练习3.3
#include"iostream.h"
void main()
{
int i,j,fac,sum;
sum=0;
for(i=1;i<=3;i++)
{
fac=1;
for(j=1;j<=3;j++)
fac=fac*j;
sum+=fac;
}
cout<<"sum="
<<sum<<endl;
}
希望各高手解答啊!!
...全文
81 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
paapa 2004-03-23
  • 打赏
  • 举报
回复
mark
Darkay_Lee 2004-03-23
  • 打赏
  • 举报
回复
楼主的算法复杂度太高了(O(n^2)),看我的(O(n)):
#include <iostream>
using namespace std;
int main()
{
int count = 0;
cin >> count;
int sum = 0;
int fact=1;
for(int i=1; i<=count; i++)
{
fact *= i;
sum += fact;
}
cout<<sum<<endl;
}
qsun 2004-03-23
  • 打赏
  • 举报
回复
up
jsda 2004-03-23
  • 打赏
  • 举报
回复
up
cutemouse 2004-03-23
  • 打赏
  • 举报
回复
楼上的对了.
lovezn0424 2004-03-23
  • 打赏
  • 举报
回复
for(i=1;i<=3;i++)
{
fac=1;
for(j=1;j<=3;j++)
fac=fac*j;
sum+=fac;
}
你这是算得是 3!+3!+ 3!

可以改成
for(i=1;i<=3;i++)
{
fac=1;
for(j=1;j<=i;j++) //这里fac = i!
fac=fac*j;
sum+=fac;
}
danielpan 2004-03-23
  • 打赏
  • 举报
回复
内层循环改成for(j=1;j<=i;j++)就ok
eliner 2004-03-23
  • 打赏
  • 举报
回复
#include"iostream.h"
void main()
{
int i,j,fac,sum;
sum=0;
for(i=1;i<=3;i++)//外循环重复里面的三次计算6*3=18
{
fac=1;
for(j=1;j<=3;j++)//这个循环计算1*2*3=6
fac=fac*j;
sum+=fac;
}
cout<<"sum="
<<sum<<endl;
}

所以不是你想要的结果了,其实你的实现方法就是有问题的
#include"iostream.h"

int cal(int n)
{
int fac=1;
for(int i=1;i<=n;++i)
fac*=i;
return fac;
}

void main()
{
int i,j,fac,sum=0;
for(i=1;i<=6;i++)
sum+=cal(i);
cout<<"sum="<<sum<<endl;
}
啵呗 2004-03-23
  • 打赏
  • 举报
回复
题目是:求1!+2!+3!+4!+5!+6!
不是啊 我试过啊 没丢括号啊 能编译过啊 就是结果不对啊!是什么原因呢!
hwater 2004-03-23
  • 打赏
  • 举报
回复
是不是 for(j=1;j<=3;j++)
{ fac=fac*j;
sum+=fac;
}
忘了加括号?
hcj2002 2004-03-23
  • 打赏
  • 举报
回复
什么意思??


题目的要求什么要求,说说看?
这里应该是:
for(j=1;j<=3;j++)
{
fac=fac*j;
sum+=fac;
}
吧。


junnyfeng 2004-03-23
  • 打赏
  • 举报
回复
有什么问题?

64,631

社区成员

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

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