C语言阶乘怎么算

Python010

C语言阶乘怎么算,第1张

概率论,一个C上下个一个数字的算法:Cmn=m!/[n!*(m-n)!]     m在下,n在上n!代表n的阶乘=1*2*3*……*n。

拓展资料:

一、概率的严格定义:E是随机试验,S是它的样本空间。对于E的每一事件A赋于一个实数,记为P(A),称为事件A的概率。这里P(·)是一个集合函数,P(·)要满足下列条件:

(1)非负性:对于每一个事件A,有P(A)≥0

(2)规范性:对于必然事件S,有P(S)=1

(3)可列可加性:设A1,A2……是两两互不相容的事件,即对于i≠j,Ai∩Aj=φ,(i,j=1,2……),则有P(A1∪A2∪……)=P(A1)+P(A2)+..

二、概率论是研究随机性或不确定性等现象的数学。更精确地说,概率论是用来模拟实验在同一环境下会产生不同结果的情况。在自然界和人类社会中,存在大量的随机现象,而概率是衡量该现象发生的可能性的量度。

1、不是直接输入n!,需要一定的算法才可以实现。具体方法是,首先打开编辑器,准备好空白的C语言文件:

2、在编辑器中输入代码,这里所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n。C语言中可利用循环解决,可以假设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum,最后输出sum的值就可以了:

3、在编辑器中运行程序,随意输入一个数,按下回车键,即可打印出阶乘的结果来:

其实这个只能算到12的阶乘,因为13的阶乘等于6227020800,它已经大于2的31次方了,也就是超过了int所能表示的最大值了(溢出),所以你可以把int

改为double.

#include

<stdio.h>

#include

<stdlib.h>

double

f(int

n)

{

if(n==0||n==1)

return

1

return

n*f(n-1)

}

int

main()

{

int

n,k,i

printf("请输入一个数:")

scanf("%d",&k)

for(i=1i<=ki++)

{

printf("第%d个数为:",i)

scanf("%d",&n)

printf("%d!=%f\n",n,f(n))

}

}

我把你写的稍微改了一下,你看看。