演示版本
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日
