在此示例中,您將學(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ù)字的階乘。