c语言用函数计算10阶乘 c语言计算10的阶乘并输出

C语言编写10的阶乘#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("输入一个整数:");
scanf("%d",n);
printf("%d!=%ld",n,multiplyNumbers(n));
return0;
}
longintmultiplyNumbers(intn)
{
if(n=1)
returnn*multiplyNumbers(n-1);
else
return1;
}
10的阶乘用C语言表示#includestdio.hint fun(int n){//定义函数求nc语言用函数计算10阶乘的阶乘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的阶乘为c语言用函数计算10阶乘:%d\n",i,fun(i));return 0; }/*输出:1的阶乘为:12的阶乘为:23的阶乘为:64的阶乘为:245的阶乘为:1206的阶乘为:7207的阶乘为:50408的阶乘为:403209的阶乘为:36288010的阶乘为:3628800 */
关于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
【c语言用函数计算10阶乘 c语言计算10的阶乘并输出】就可以数到有多少个
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语言编写1到10的阶乘#includestdio.h
int main()
{
int a=1,i;
for(i=1;i=10;i++)
a=a*i;
printf("10的阶乘=%d",a);
return 0;
}
扩展资料:
在C语言中,有三种类型的循环语句:for语句、while语句和do While语句 。分别介绍如下:
for
for为当型循环语句,它很好地体现了正确表达循环结构应注意的三个问题:
⑴控制变量的初始化 。
⑵循环的条件 。

推荐阅读