我是新手,大家能帮助我吗?先谢谢大家
e=1!+2!+3!+4!+......n!
应当怎样编写阿
我是新手,大家能帮助我吗?先谢谢大家
e=1!+2!+3!+4!+......n!
应当怎样编写阿
http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=44&ID=3299&page=2
这个能帮到你 要多思考 勤思考 会思考
你的n应该是输入的吧:
main()
{int i,n,s=0,t=1;
printf("input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{t=t*i;
s=s+t;
}
printf("e=%d\n",s);
getch();
}
如果你输入的数过大的话,会出现溢出,改下数据类型!
好是好,但是我认为这个是 函数递归 那章的问题,所以尽量要用递归的思路去想,要不然出题目的人不是白忙活了?
而且学好递归在后面也也是很有用的,利用价值不下于最万能的穷举法。(其实有时候也不怎么万能)
main() { long s[23],t[23],a,b,c,g=0,e,f,k=0,p=10000000; int x,y;
for (x=22;x>=0;s[x]=0,x--);
for (f=1;f<=100;f++) { for (x=22;x>=0;t[x]=0,x--); t[22]=1; for (e=1;e<=f;e++) for(x=22;x>=0;c=t[x],c*=e,a=c/p,b=c%p,t[x]=b+g,g=a,x--); for(y=22;y>=0;c=t[y]+s[y],a=c/p,b=c%p,s[y]=b+k,k=a,y--); } printf("%ld",s[0]); for(x=1;x<=22;printf("%.7ld",s[x]),x++); getch(); }