在C语言中,你可以使用循环结构或者递归函数来实现计算阶乘的功能。下面是两种方法的代码示例:
1)使用循环:
#include <stdio.h>
int main() {
int i, num;
unsigned long long factorial = 1;
printf("Enter an integer: ");
scanf("%d",&num);
if (num < 0)
printf("Error! Factorial of a negative number doesn't exist.");
else {
for(i=1; i<=num; ++i) {
factorial *= i; // factorial = factorial * i;
}
printf("Factorial of %d = %llu", num, factorial);
}
return 0;
}
2)使用递归:
#include <stdio.h>
unsigned long long factorial(int n);
int main() {
int num;
printf("Enter a positive integer: ");
scanf("%d",&num);
printf("Factorial of %d = %llu", num, factorial(num));
return 0;
}
unsigned long long factorial(int n) {
if(n<0)
return -1; /*Wrong value*/
else if(n==0)
return 1;
else
return n*factorial(n-1); /*Recursive call*/
}
以上两段代码都可以用来计算阶乘,你可以选择适合你的那一种。然而请注意,我们需要使用”unsigned long long”数据类型来存储阶乘结果,因为阶乘结果通常会很大,可能超过”int”或”long”类型的范围。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/172759.html