#include"stdio.h"
創(chuàng)新互聯(lián)來電聯(lián)系:18980820575,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)網(wǎng)頁制作領(lǐng)域10年,包括成都假山制作等多個領(lǐng)域擁有多年的網(wǎng)站運維經(jīng)驗,選擇創(chuàng)新互聯(lián),為企業(yè)保駕護航!
void main()
{
long a=1,n;
for(n=1;n=10;n++)
{
a*=n;/*求階乘*/
}
printf("%ld\n",a);
}
#includestdio.h
int main()
{
int a=1,i;
for(i=1;i=10;i++)
a=a*i;
printf("10的階乘=%d",a);
return 0;
}
擴展資料:
在C語言中,有三種類型的循環(huán)語句:for語句、while語句和do While語句。分別介紹如下:
for
for為當(dāng)型循環(huán)語句,它很好地體現(xiàn)了正確表達循環(huán)結(jié)構(gòu)應(yīng)注意的三個問題:
⑴控制變量的初始化。
⑵循環(huán)的條件。
⑶循環(huán)控制變量的更新。
while:
while結(jié)構(gòu)循環(huán)為當(dāng)型循環(huán)(when type loop),一般用于不知道循環(huán)次數(shù)的情況。維持循環(huán)的是一個條件表達式,條件成立執(zhí)行循環(huán)體,條件不成立退出循環(huán)。
while語句格式為:
while(條件表達式)
循環(huán)體
每次執(zhí)行循環(huán)體前都要對條件表達式進行判斷。
參考資料來源:百度百科-循環(huán)語句
#include"stdio.h"
main()
{inti,s=1;
for(i=10;i=1;i--)
s=s*i;
printf("s=%d\n",s);
}
擴展資料
C語言使用遞歸階乘
#includestdio.h
longintmultiplyNumbers(intn);
intmain()
{
intn;
printf("輸入一個整數(shù):");
scanf("%d",n);
printf("%d!=%ld",n,multiplyNumbers(n));
return0;
}
longintmultiplyNumbers(intn)
{
if(n=1)
returnn*multiplyNumbers(n-1);
else
return1;
}
這個算法的思路是這樣的,階乘值有末后有多少個
0,取決于階乘中乘了多少個
10。10
的質(zhì)因數(shù)是
2
×
5,而
2
這個因數(shù)是遠遠比
5
多的。如:
1
×
2
×
3
×
4
×
5
=
120
質(zhì)因數(shù)有
1
個
5
,有
3
個
2
:2
和
4
=
2
×
2。
1
×
2
×
3
×
4
×
5
×
6
×
7
×
8
×
9
×
10
=
3628800
質(zhì)因數(shù)有
2
個
5
,有
8
個
2。
所以數(shù)后面的
相當(dāng)于數(shù)因數(shù)中5的個數(shù)。
1!
2!
3!
4!
后面沒有
0,
5!
6!
7!
8!
9!
后面有
1
個
0,
10!
11!
12!
13!
14!
后面有
2
個
0,
15!
16!
17!
18!
19!
后面有
3
個
0,
20!
21!
22!
23!
24!
后面有
4
個
0。
而
25!
則有
6
個
0,因為
25
=
5
×
5
因此數(shù)
n!
后面的
0,n/5
就可以數(shù)到有多少個
5
的倍數(shù),再循環(huán)就是計算
n/5/5,可以數(shù)到有多少個
25
的倍數(shù),知道要加多少個
0,n/5/5/5
可以數(shù)到有多少個
125
的倍數(shù),如此類推,直到商等于
0,就算到結(jié)果。這就是以下核心算法的意義:
count
=
0;
//
初始化記數(shù)變量
while
(n
!=
0)
//
重復(fù)數(shù)數(shù)目,直到商等于0,才不用再加。
{
count
+=
n
/
5;
//
第1次循環(huán)加5的倍數(shù)的個數(shù),第2次加25的倍數(shù)的個數(shù),…
n
=
n
/
5;
//
轉(zhuǎn)到下一次循環(huán)。
}
#includestdio.hint fun(int n){//定義函數(shù)求n的階乘 if(n==0||n==1) return 1; else return n*fun(n-1);} int main(){ int i; for(i=1;i=10;i++) printf("%d的階乘為:%d\n",i,fun(i)); return 0; } /*輸出:1的階乘為:12的階乘為:23的階乘為:64的階乘為:245的階乘為:1206的階乘為:7207的階乘為:50408的階乘為:403209的階乘為:36288010的階乘為:3628800 */
#includestdio.h
int fac(int n); //函數(shù)聲明
void main()
{
int a;
//int m;
printf("input a int number:");
scanf("%d",a);
printf("after the function is:");
//m=f(a);
printf("%d\n",fac(a));
}
int fac(int n) //定義fac函數(shù)
{
if(n0)
{
printf("n0,date error!");
}
else
if(n==0||n==1)
{
return 1;
}
else
return (n*fac(n-1));
}
注意輸入的數(shù)不能太大了,否則就會出現(xiàn)溢出的情形。
比方說10000的階乘就要用數(shù)組來實現(xiàn)了,這個程序是無法辦到的。
網(wǎng)站欄目:函數(shù)求10的階乘c語言,計算10的階乘c語言
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article32/dssdesc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、Google、標簽優(yōu)化、外貿(mào)建站、營銷型網(wǎng)站建設(shè)、自適應(yīng)網(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)