xbns.net
当前位置:首页 >> C语言:1到n的阶乘之和 >>

C语言:1到n的阶乘之和

最基础的思路,是逐个求阶乘,并累加.不过由于阶乘是从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);//输出结果.}

#include<stdio.h> double fun(int n); int main(void) { int n; printf("Enter n:"); scanf("%d",&n); printf("%lf\n",fun(n)); return 0; } double fun(int n) { if(n==0||n==1) return 1; else return n*fun(n-1); }

从1的阶乘加到N的阶乘和求解如下,下述代码只包含函数体,并未定义主函数,希望自行修改int fun(int n) //n 为条件中的N{int sum = 0,m = 1;;for(int i = 1; i 作业帮用户 2016-11-17 举报

int main() { int a,n ,b; b = 1; a = 1; printf("输入n(1-16)"); scanf("%d",&n); if( n == 1) { printf("1到n的阶乘之和为1"); } else for (i = 2; i { a = a*i; b = b+a; } printf("1到n的阶乘之和为 %d \n"); } 如果有疑问,可以追问

#include<stdio.h> int main() { int i,j,n; long p; long Sn=0; scanf("%d",&n); for(i=1;i<=n;i++) { p=1; for(j=1;j<=i;j++) { p=p*j; } Sn=Sn+p; } printf("%ld\n",Sn); }

#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> main() { int i,n, k = 1; /*另设一个值来保存阶乘吧,i要用来循环*/ scanf("%d",&n); for(i=1;i<=n;i++) /*这里的分号去掉,不然下面一句没法循环= =*/k *= i; printf("%d",k); getch(); } 望采纳

#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 <stdio.h> main () { double n,i,m=1,sum=0; printf ("请输入一个正整数n:\n"); scanf ("%lf",&n); //此处要用%lf格式输入double数据,%d是输入整数格式 for (i=1;i<=n;i++) { m=m*i; sum=m+sum; } printf ("1!+2!+..+n!= %lf\n",sum); }

#include<stdio.h> void main() { int n,i,k=1,sum=0; scanf("%d",&n); for(i=1;i<=n;i++) { k*=i; sum+=k; } printf("%d\n",sum); }

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