c语言函数10的阶乘 c语言 10的阶乘

10的阶乘用C语言表示#includestdio.hint fun(int n){//定义函数求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 */
编程求10的阶乘 c语言#include"stdio.h"
void main()
{
long a=1,n;
for(n=1;n=10;n)
{
a*=n;/*求阶乘*/
}
printf("%ld\n",a);
}
关于C语言中10的阶乘这个算法的思路是这样的,阶乘值有末后有多少个
0,取决于阶乘中乘了多少个
10 。10
的质因数是
2
×
5 , 而
2
这个因数是远远比
5
多的 。如:
1
×
2
×
3
×
4
×
5
=
120
质因数有
1

5
,有
3

2
:2

4
=
2
×
2 。
1
×
2
×
3
×
4
×
5
×
6
×
7
×
8
×
9
×
10
=
3628800
质因数有
2

5
,有
8

2 。
所以数后面的
相当于数因数中5的个数 。
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
因此数
n!
后面的
0,n/5
就可以数到有多少个
5
的倍数 , 再循环就是计算
n/5/5,可以数到有多少个
25
的倍数,知道要加多少个
0,n/5/5/5
可以数到有多少个
125
的倍数 , 如此类推,直到商等于
0,就算到结果 。这就是以下核心算法的意义:
count
=
0;
//
初始化记数变量
while
(n
!=
0)
//
重复数数目 , 直到商等于0,才不用再加 。
{
count
=
n
/
5;
//
第1次循环加5的倍数的个数,第2次加25的倍数的个数,…
n
=
n
/
5;
//
转到下一次循环 。
}
【c语言函数10的阶乘 c语言 10的阶乘】c语言函数10的阶乘的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言 10的阶乘、c语言函数10的阶乘的信息别忘了在本站进行查找喔 。

    推荐阅读