介绍
在本实验中,我们将学习如何使用 C 编程语言中的递归(recursion)来计算给定数字的阶乘(factorial)。阶乘用符号 !
表示,它是所有小于或等于给定数字的正整数的乘积。例如,5 的阶乘是 5 x 4 x 3 x 2 x 1 = 120。
在本实验中,我们将学习如何使用 C 编程语言中的递归(recursion)来计算给定数字的阶乘(factorial)。阶乘用符号 !
表示,它是所有小于或等于给定数字的正整数的乘积。例如,5 的阶乘是 5 x 4 x 3 x 2 x 1 = 120。
在 main
函数中,我们将声明变量来存储输入的值和计算得到的阶乘。然后,我们会提示用户输入一个值,以便计算其阶乘。
#include <stdio.h>
int main()
{
int num, factorial;
printf("Enter a number: ");
scanf("%d", &num);
}
现在我们将创建一个名为 factorial
的函数,它接受一个整数参数 num
并返回一个整数值。在这个函数中,我们将使用递归来计算给定数字的阶乘。如果给定数字的值等于 1 或 0,我们将返回 1,因为这两个值的阶乘都是 1。如果给定数字大于 1,我们将使用递归计算其阶乘并返回该值。
int factorial(int num)
{
if(num == 0 || num == 1)
{
return 1;
}
else
{
return num * factorial(num-1);
}
}
现在,我们将在 main
函数中调用 factorial
函数,并将输入的值作为参数传递。然后,我们将返回值存储在 factorial
变量中,并将结果打印到控制台。
#include <stdio.h>
int factorial(int num);
int main()
{
int num, factorial;
printf("Enter a number: ");
scanf("%d", &num);
factorial = fact(num);
printf("Factorial of %d is %d", num, factorial);
return 0;
}
现在程序已经编写完成,将文件保存为 main.c
并存储在 ~/project/
目录中。打开终端并导航到包含 main.c
文件的目录。使用以下命令编译程序:
gcc main.c -o main
程序成功编译后,使用以下命令运行程序:
./main
main.c
的完整代码如有需要,可以参考以下代码。
#include <stdio.h>
int factorial(int num);
int main()
{
int num, factorial;
printf("Enter a number: ");
scanf("%d", &num);
factorial = factorial(num);
printf("Factorial of %d is %d", num, factorial);
return 0;
}
int factorial(int num)
{
if(num == 0 || num == 1)
{
return 1;
}
else
{
return num * factorial(num-1);
}
}
在本实验中,我们学习了如何使用 C 语言中的递归来计算给定数字的阶乘。我们创建了一个使用递归来查找阶乘的函数,以及一个用于输入数字并调用阶乘函数的 main
函数。