用C语言写一个递归例子
时间: 2023-05-12 14:06:16 浏览: 136
好的,以下是一个用C语言写的递归例子:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n = 5;
int result = factorial(n);
printf("The factorial of %d is %d\n", n, result);
return 0;
}
```
这个例子计算了一个数的阶乘,使用了递归的方式实现。如果输入的数是0,则返回1;否则,计算n的阶乘需要先计算(n-1)的阶乘,以此类推,直到计算到0的阶乘为止。
相关问题
用c语言写一个递归的例子
我可以为你提供一个用C语言写的递归例子: int factorial(int n)
{
if (n == 0)
return 1;
else
return n * factorial(n - 1);
}
用c语言写一个递归代码
在C语言中,递归是一种函数调用自己的编程技术,常用于解决可以分解成相似子问题的问题,如计算阶乘、斐波那契数列等。下面是一个简单的例子,展示如何用C语言编写计算阶乘的递归函数:
```c
#include <stdio.h>
// 定义递归函数计算阶乘
int factorial(int n) {
// 基本情况:0 和 1 的阶乘都是 1
if (n == 0 || n == 1)
return 1;
else
// 递归情况:n 的阶乘等于 n 乘以 (n - 1) 的阶乘
return n * factorial(n - 1);
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num >= 0) {
long long result = factorial(num);
printf("该数的阶乘是:%lld\n", result);
} else {
printf("输入错误,阶乘只对非负整数有效。\n");
}
return 0;
}
```
当你运行这个程序并输入一个数字时,它会递归地计算并显示给定数值的阶乘。
阅读全文