演示版本
VS2012
- 使用while语句求n
实例说明:
3!=3x2x1,5!=5x4x3x2x1,以此类推,n!=nx(n-1)x...x2x1,使用while语句求n!。
在写程序之前首先要理清求n!的思路。求一个数n的阶乘也就是用nx(n-1)x(n-2)
x...x2x1,那么反过来从1一直乘到n求n!也依然成立。当n为0和1时要单独考虑,
此时它们的阶乘均为1。
求得得阶乘最终结果要定义为单精度或双精度型,如果定义为整型就很容易出现
溢出现象。
#include <stdio.h> int main() { int i = 2, n;//定义变量i、n为基本整型并为i赋初始值2 float fac = 1;//定义fac为单精度型并赋初始值1 printf("please input an interger>=0.\n"); scanf_s("%d", &n);//使用scanf()函数获取n的值 if (n == 0 || n == 1) { printf("factoroal is 1.\n"); return 0; } while (i <= n)//当满足输入的数值大于等于i时执行循环体语句 { fac = fac * i;//实现求阶乘的过程 i++;//变量i自加 } printf("factorial of %d is:%.2f.\n", n, fac);//输出n和fac最终的值 return 0; }
阿飞
2021年8月7日