#includestdio.h
創(chuàng)新互聯(lián)建站專注于瓊山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供瓊山營銷型網(wǎng)站建設(shè),瓊山網(wǎng)站制作、瓊山網(wǎng)頁設(shè)計、瓊山網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造瓊山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供瓊山網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
main()
{
int?a,?b,?c,?d;
long?e;
scanf("%d%d%d%d",?a,?b,?c,?d);
e?=?fac(a)?+?fac(b)?+?fac(c)?+?fac(d);
printf("%d",?e);
}
long??fac(long?n)//返回
{
int?i;
long?jc?=?1;
if?(n1)?jc?=?1;
else{
for?(i?=?1;?i?=?n;?i++)
jc?*=?i;
}
return?jc;
}
階乘:
階乘是基斯頓·卡曼(Christian Kramp,1760~1826)于 1808 年發(fā)明的運算符號,是數(shù)學(xué)術(shù)語。
一個正整數(shù)的階乘(英語:factorial)是所有小于及等于該數(shù)的正整數(shù)的積,并且有0的階乘為1。自然數(shù)n的階乘寫作n!。1808年,基斯頓·卡曼引進這個表示法。
亦即n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。
C語言
在 C 語言中,使用循環(huán)語句可以很方便的求出階乘的值,下面介紹一個很簡單的階乘例子。(因為網(wǎng)上多數(shù)是比較麻煩的方法)
【計算出“ 1!+ 2!+ 3!+ …… + 10!”的值是多少?】
#includestdio.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;
}
/*結(jié)果: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++ 中
#includeiostream
using namespace std;
long long f(int n)
{
long long e=1;
if(n0)
e=n*f(n-1);
coutn"!="eendl;
return e;
}
int main()
{
int m=20;
f(m);
return 0;
}
以上使用 C++ 11 標準
也可以利用積分求浮點數(shù)階乘:
#includecstdio
#includecmath
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;
}
#includestdio.h
#includemath.h
double
fac(int
n)
{
if(n==1)return
1;
else
return
fac(n-1)*n;
}
int
main()
{
int
n;
scanf("%d",n);
printf("%d!=%.0lf\n",n,fac(n));
//因為20!已經(jīng)超出了int的最大值,故用double型,輸出的時候輸出整數(shù)位
return
0;
}
fac在C語言中沒有特別的含義,既不是關(guān)鍵字也不是庫函數(shù),可能是編程人員自定義的一個變量名或函數(shù)名等。
通常用fac來表示求階乘的函數(shù)名,fac是階乘英文(factorial)的前三個字母。
下面定義一個函數(shù)名為fac的階乘函數(shù):
double?fac(int?n)
{
if(n==0?||?n==1)??//?0和1的階乘都為1
return?1;
if(n1)
return?n*fac(n-1);??//?n的階乘等于n乘以(n-1)的階乘
}
網(wǎng)站名稱:c語言fac函數(shù)求階乘 用函數(shù)求階乘c語言
文章出自:http://vcdvsql.cn/article10/ddccjgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、做網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)