c语言阶乘函数,c语言阶乘

1,c语言阶乘scanf("%d",&j);for(n=1;n<=j;n++)for(m=1;m<=n;m++)a+=n*m;sum+=a;#include <stdio.h>#include <stdlib.h>void main() int n, i; long sum, f; f=1; sum=0; scanf("%d",&n); for (i=1; i<=n; i++)f=f*i;sum=sum+f; } printf("%d\n",sum);}
2,C语言定义阶乘问题函数是不能写在函数里面的,要分开写 。给你可用的代码把 。#include &lt;stdio.h&gt;int func(int);int main(){ int sum,n,i;scanf("%d",&amp;n); sum=0;i=1;while(i&lt;=n) { sum+=func(i); i++; } printf("%d\n",sum); return 0;}//函数名用fun,好像是取乐子的意思 。。。这个递归函数用来计算阶乘int func(int n) { if(n==0||n==1) { return 1; } else { return n*func(n-1); }}
3,c语言求阶乘函数函数的调用少了参数,和函数定义的模型不一样 。而且我觉得你最好把函数定义放main前面,或者在main前面写个函数声明 。你好,c语言中默认的只有long int short的整数类型,如果数过大最好使用double, 或则使用第三方大整数运算(可以去网上百度下代码) , 请注意数据如果太大最好用double希望能帮到你!望采纳!将 求阶乘的函数放到main 函数上边, , ,,或者在main函数中加一句 "int abc (int n);" 进行函数声明 , ,函数使用和变量是一样的 , ,都需要先声明在使用#include<stdio.h>int abc (int );void main()int a,c; int abc(); scanf("%d",&a); printf("%d",abc(a));}int abc (int n) if(n<=0) return 1; else return (n*abc(n-1));}【c语言阶乘函数,c语言阶乘】
4 , C语言写一个求阶乘函数输出结果1 设计阶乘函数 。按照数学定义,对于n的阶乘,如果n为0 , 则返回1.否则返回1*2*3*...*n的值 。用循环实现 。2 在主函数中输入要求阶乘的值 。3 调用函数计算阶乘 。4 输出结果 。代码:int fac(int n) int r = 1; int i; for(i = 2; i <=n; i ++) r*=i; return r;}int main() int n,r; scanf("%d",&n); r = fac(n); printf("%d!=%d\n",n,r);}骚年 你这已经不是C语言基本数据类型能解决的了,因为30的阶层太大了,c语言的基本类型里存不下了,要用到其他特殊的方法 , 下面我给你一个产生不大于10 的三阶乘相加函数 。如果有其他问题再讨论 。#include<stdio.h>int my_Cal(int i) long temp = 1; for(i;i>0;i--)temp = temp * i; return temp;}void myCal(int a,int b,int c) printf("ADD = %ld\n",my_Cal(a)+my_Cal(b)+my_Cal(c));}int main() int a = rand()%11; int b = rand()%10; int c = rand()%10; myCal(a,b,c); return 0; }5 , c语言求阶乘的函数阶乘:阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语 。一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1 。自然数n的阶乘写作n! 。1808年,基斯顿·卡曼引进这个表示法 。亦即n!=1×2×3×...×n 。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n 。C语言在 C 语言中 , 使用循环语句可以很方便的求出阶乘的值,下面介绍一个很简单的阶乘例子 。(因为网上多数是比较麻烦的方法)【计算出“ 1!+ 2!+ 3!+ …… + 10!”的值是多少?】#include<stdio.h>int main()int x;long j=1,sum=0;for(x=1;x<=10;x++)j*=x;sum+=j;}printf("1!+2!+...+10!=%ld\n",sum);return 0;}/*结果:4037913*/Pascal中program test;varn:longint;function jc(n:longint):qword;begin if n=0 then jc:=1 else jc:=n*jc(n-1)end;begin readln (n); writeln (jc(n))end.C++ 中#include<iostream>using namespace std;long long f(int n)long long e=1;if(n>0)e=n*f(n-1);cout<<n<<"!="<<e<<endl;return e;}int main()int m=20;f(m);return 0;}以上使用 C++ 11 标准也可以利用积分求浮点数阶乘:#include<cstdio>#include<cmath>double s;const double e=exp(1.0);double F(double t)return pow(t,s)*pow(e,-t);}double simpson(double a,double b)double c=a+(b-a)/2;return (F(a)+4*F(c)+F(b))*(b-a)/6;}double asr(double a,double b,double eps,double A)double c=a+(b-a)/2;double L=simpson(a,c),R=simpson(c,b);if(fabs(L+R-A)<=15*eps) return L+R+(L+R-A)/15.0;return asr(a,c,eps/2,L)+asr(c,b,eps/2,R);}double asr(double a,double b,double eps)return asr(a,b,eps,simpson(a,b));}int main()scanf("%lf",&s);printf("%lf\n",asr(0,1e2,1e-10));return 0;}你好,C语言中默认的只有longintshort的整数类型,如果数过大最好使用double,或则使用第三方大整数运算(可以去网上百度下代码),请注意数据如果太大最好用double希望能帮到你!望采纳!将求阶乘的函数放到main函数上边,,,,或者在main函数中加一句"intabc(intn);"进行函数声明,,函数使用和变量是一样的, , 都需要先声明在使用f是fac()函数内部的静态变量,那么,f只在第一次进入fac()函数时才执行其初始化操作,以后都会跳过初始化操作 。所以第一次执行fac(1)函数时 , f初始化为1,并乘以1,f仍为1;第二次执行fac(2)时 , 跳过初始化操作,f=f*2,f为2;第三次执行fac(3)时,跳过初始化操作,f=f*3 , f为6;第四次执行fac(4)时,跳过初始化操作,f=f*4,f为24;......以此类推 。由于f定义为静态(static)整数每次执行fac时是不随fac的执行完毕清除的所以可以累乘i:1f:1i:2f:1*2=2;i:3f:2*3=6i:4f:6*4=24...

    推荐阅读