中易网

编程求1!+2!+3!+4!···+12! ,并试着简化程序

答案:6  悬赏:70  
解决时间 2021-02-18 22:01
1!+2!+3!+4!···+12! 这个题目的意思是?
最佳答案
我来回答你的问题吧,对于初学者来说呢,一般会采用好几重循环的方法来解决,程序看上去庞大切不易懂,对于阶乘问题最简算法应该就是递归了,对于阶乘和递归楼上都有说到,一楼的递归看起来有点晦涩,我给出我的代码,你自己去验证了;
int fn(int i)
{ if(i == 1)
return 1;
return i*fn(i-1);
}
int main(void)
{ int i;
for(i=0; i<=12;i++)
sum += fn(i);
printf("the result is : %d\n", sum);
return 0;
}
全部回答
#include<stdio.h> void main() { int n=1,sum=0,temp; //sum存放总和,temp暂时存放每个n! while(n<13){ //外层while循环用来累加每个n!的和 temp=1; while(n>0){ //内层循环用来求每个n的阶乘,并暂存在temp中 temp*=n; n--; } sum+=temp; n++; } }
算法思想:因为在计算12!时,也计算了12以前的所有数字的阶乘,所有可以简化计算量。 ##include<stdio.h> double f(int n) { int sum=0; int factorial=1; int index=1; while(index<=n) { factorial*=index; #printf("%d\n",factorial); sum+=factorial; ++index; } return sum; } int main() { int n=4; printf("%f\n",f(n)); return 1; }
n!的意思是1*2*3·····*(n-1)*n 如:3!=1*2*3=6 计算部分如下: a=1; sum=0; for(i=1;i<=12;i++) { sum=sum+a*i }
void main() { int sum = 0, i, sign = 1; for(i=1; i<=100; i++) { sum += sign*i; sign *= -1; } printf("1-2+3-4....100 = %d\n", sum); }
#include<stdio.h> void main() { long jiecheng(int); long sum,i; sum=0; for(i=1;i<=12;i++) sum=sum+jiecheng(i); printf("sum=%d\n",sum); } long jiecheng(int n) { int m,p; p=1; for(m=1;m<=n;m++) p=p*m; return(p); }自己编的,试试看,应该没问题!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一本书160页,某同学一次翻到第100页的概率是
剑侠情缘三一颗六级五行石大概多少RMB?
上饶银行怎么样,柜员待遇如何,能正常上下班
郑州绿源山水生态农业开发有限公司怎么去啊,
沃尔沃重卡跟奔驰重卡哪个比较好
245和165的最小公倍数
鑫源粮油批发部地址有知道的么?有点事想过去
如何调地毯材质
申通快递三路营业点地址在哪,我要去那里办事
离东莞南城最近的草莓园在哪里?
影响激励的因素
面试应该拿什么去? 我是大一的要面试一份实
房价每3个月上调一次 上调幅度在10%以内 不可
洁净洗衣店(陕安咸宁北苑北)怎么去啊,有知道
怎样化解各种煞气
推荐资讯
超市里卖的一块五一瓶的酸奶和益膳房二块一包
公务员考试哪些专业考试比较厉害
男方发现女方的qq聊天有暧昧关系,如果离婚女
佛山市南海区盈钰织带公司地址在哪,我要去那
桂花潭在什么地方啊,我要过去处理事情
半透膜中,浓度高那一边为什么会吸浓度低的那
为什么说旅游孕育于旅行之中又脱胎于旅行之外
百色的苏宁、国美在哪个位置
古筝曲中所说的“大关系”“小关系”是什么意
荣事达智能家居体验中心地址在什么地方,想过
阳光餐馆地址在什么地方,想过去办事
金榜研创NO.013地址有知道的么?有点事想过去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?