phfb.net
当前位置:首页 >> n的阶乘分之一求和C语言 >>

n的阶乘分之一求和C语言

#include"stdio.h" void main() { long a=1,n,s=0; for(n=1;n{ a*=n;/*求阶乘*/ s+=a;/*求和*/ } printf("%ld\n",s); }

用递归实现!我只给出核心部分 float sum=0; for(int i=1;i sum+=1/JC(i); //阶乘分之一 } float JC(int x) //求阶乘 { if(x==1) return 1; else return x*JC(x-1); } 【原创答人】

能用编程算2113 用5261c++编程计算s=1+(1+2!4102)+(1+2!+3!)+…+(1+2!+3!+…+n!) (既阶1653乘,求)#include #include using namespace std; int main() { int i,n; __int64 sum=0;//所 __int64 sum2=0;//阶乘 __int64 js = 1; scanf("%d", &n);//用c函数才容版易权64位输入输 for(i=1;i<=n;++i) { js *= i; sum2 += js; sum += sum2; } printf("sum=%I64d\n", sum); return 0; }

计算从1到10各数阶乘的和,即1! + 2! + 3! + …… + 9! + 10! 的和#include<stdio.h>int main(void){ int sum,i,term; sum=0; term=1; for(i=1;i<=10;i++) { term=term*i; sum=sum+term; printf("%d的阶乘 %d\n",i,term); } printf("1到10各数阶乘的和 %d\n",sum); return 0;}

#include <stdio.h> void main( ) { int i,n,k=1,s=0; scanf("%d",&n); for(i=1;i<=n;i++) {k*=i;s+=k;} printf("%d",s); }//运行示例:

#include int jc(int n) { int j=1,i,num=0; for(i=1;i { j*=i; num+=j; i++; } return num; } int main() { int n; printf("请输入n的值\n"); scanf("%d",&n); n=jc(n); printf("1到n的阶乘的和为%d\n",n); return 0; }

#include <stdio.h>int main(){ double r=1,f=1; int i,n; scanf("%d",&n); for(i = 1; i <= n; i ++) { f*=i; r+=1/f; } printf("%lf\n",r); return 0;}

#include int fac(int n) { int r=1; for(i = 2; i r*=i; return i; } int main() { int n; scanf("%d",&n); printf("%d!=%d\n",n,fac(n)); return 0; }

最基础的思路,是逐个求阶乘,并累加.不过由于阶乘是从1乘到n,所以每个数都单独求一次阶乘,会有很多重复运算,影响效率.所以更快捷的方式是,在上一个数的阶乘基础上,直接乘上本身,得到当前数的阶乘.以此为主导,代码如下:#include <stdio.h>int main(){ int n, i, n1 = 1,s=0; scanf("%d",&n);//输入n值. for(i=1; i <= n; i ++) { n1*=i;//计算i的阶乘. s+=n1;//累加. } printf("%d\n", s);//输出结果.}

网站首页 | 网站地图
All rights reserved Powered by www.phfb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com