n!函数用C语言其实可以这样!

阳哥( )认为:在写程序之前首先要理清求n!的思路。要求一个数n的阶乘n!也就是用n*(n-1)*(n-2)*......*2*1,那么反过来从1一直乘到n依然成立。当n为0和1的时候我们单独考虑,此时它们的阶乘均为1。

n!函数用C语言其实可以这样!

求得结成的最终结果,这里我们要给他定义为单精度或双精度类型,如果定义为整型就很容易有溢出现象。

求n!方法

先来给大家看看输出的结果:


n!函数用C语言其实可以这样!

编程显示

n!函数用C语言其实可以这样!

输出结果


编程如下:

#include<stdio.h>

/*引用预处理命令,预处理包含stdio.h的头文件*/

main()

/*定义一个主函数,所有程序在执行前都开始于主函数,且结束于主函数*/

{

int i=2,n;

/*定义整型变量i和n,并赋值i的值为2*/

float fac=1;

/*定义单精度类型变量fac,并赋值为1,fac的含义是阶乘值*/

printf("please input an interger>=0.\\n");

/*输出函数:(请输入一个大于等于0的变量:),其中interger是C语言中的变量代表符而已,没有具体含义*/

scanf("%d",&n);

/*输入n值*/

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

/*如果n为0值或者n为1值;||指的是逻辑或*/

{

printf("factorial is 1.\\n");

/*输出函数:(这个阶乘值为1.)换行*/

}

while(i<=n)

/*当i值小于等于n时*/

{

fac=fac*i;

/*将fac值与i值相乘,并赋值给fac*/

i++;

/*i值累加*/

}

printf("factorial of %d is:%.2f.\\n",n,fac);

/*输出函数:(整型的阶乘值为:);%d指的是n,指的类型即整型,%.2f指的是fac,即单精度类型,其中.2指的是保留两位小数*/

return 0;

/*返回空值,0指空,没有,即将0返回给主函数main,其目的是告诉给main函数此程序执行完了*/

}

如果大家有问题,欢迎大家留言讨论,我都会一一解答呦,欢迎关注,给你不一样的自己!


分享到:


相關文章: