在此示例中,您將學(xué)習(xí)計(jì)算用戶輸入的數(shù)字的階乘。
要理解此示例,您應(yīng)該了解以下C語言編程主題:
正數(shù)n的階乘為:
factorial of n (n!) = 1 * 2 * 3 * 4....n
負(fù)數(shù)的階乘不存在。0的階乘是1。
#include <stdio.h> int main() { int n, i; unsigned long long fact = 1; printf("輸入一個(gè)整數(shù): "); scanf("%d", &n); //如果用戶輸入負(fù)整數(shù),則顯示錯(cuò)誤 if (n < 0) printf("錯(cuò)誤! 不存在負(fù)數(shù)階乘。"); else { for (i = 1; i <= n; ++i) { fact *= i; } printf("%d 的階乘 = %llu", n, fact); } return 0; }
輸出結(jié)果
輸入一個(gè)整數(shù): 10 10 的階乘 = 3628800
該程序從用戶處獲取一個(gè)正整數(shù),并使用for循環(huán)計(jì)算階乘。
由于數(shù)字的階乘可能很大,因此階乘變量的類型聲明為unsigned long long。
如果用戶輸入一個(gè)負(fù)數(shù),程序?qū)@示一個(gè)自定義錯(cuò)誤消息。
您還可以使用遞歸找到數(shù)字的階乘。