阳哥( )认为:在写程序之前首先要理清求n!的思路。要求一个数n的阶乘n!也就是用n*(n-1)*(n-2)*......*2*1,那么反过来从1一直乘到n依然成立。当n为0和1的时候我们单独考虑,此时它们的阶乘均为1。
求得结成的最终结果,这里我们要给他定义为单精度或双精度类型,如果定义为整型就很容易有溢出现象。
求n!方法
先来给大家看看输出的结果:
编程如下:
#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函数此程序执行完了*/
}
如果大家有问题,欢迎大家留言讨论,我都会一一解答呦,欢迎关注,给你不一样的自己!
閱讀更多 陽哥說IT 的文章