- 题1:
- 题目描述
- 代码编写(C语言版本)
- 结果演示
- 题2:
- 题目描述
- 代码编写(C语言版本)
- 结果演示
- 题3:
- 题目描述
- 代码编写(C语言版本)
- 结果演示
- 题4:
- 题目描述
- 代码编写(C语言版本)
- 结果演示
- 题5:
- 题目描述
- 代码编写(C语言版本)
- 结果演示
- 题6:
- 题目描述
- 代码编写(C语言版本)
- 结果演示
- 题7:
- 题目描述
- 代码编写(C语言版本)
- 结果演示
题1: 题目描述🎈:经典之所以被称为经典,是因为在大部分的题目中都能够找到它们的影子,经典题的解题思路已潜移默化的渗透到每道题中,只有我们掌握好经典题的解题思路,我想我们解题能力也定会更上一层楼。
🎈:这篇博客主要是对一些经典的递归题目进行讲解,让你对递归题不再恐惧!!
代码编写(C语言版本)☀️☀️☀️递归方式实现打印一个整数的每一位
void print(int n) {
if (n > 9) {
print(n / 10);
}
printf("%d ", n % 10);
}
结果演示
题2:
题目描述
代码编写(C语言版本)☀️☀️☀️ 递归求n的阶乘(不考虑溢出的问题)
int mul(int n) {
if (n <= 1) {
return 1;
}
return n * mul(n - 1);
}
结果演示
题3:
题目描述
代码编写(C语言版本)☀️☀️☀️ strlen的模拟(递归实现)
int my_strlen(char* arr) {
if (*arr == ')'return
0 ;else
return 1 + my_strlen (+arr 1 );}
void
结果演示
题4:
题目描述
代码编写(C语言版本)☀️☀️☀️编写一个函数 reverse_string(char * string,int left,int right)(递归实现)
实现:将参数字符串中的字符反向排列,不是逆序打印。
要求:不能使用C函数库中的字符串 *** 作函数。
reverse_string (char*, arrint, leftint) rightif {
( )left >= rightreturn {
; arr}
char
= h [ arr]left;[
arr]left= [ arr]right;[
arr]right= ; hreverse_string
(,arr+ left 1 ,- right 1 );}
int
结果演示
题5:
题目描述
代码编写(C语言版本)☀️☀️☀️写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
输入:1729,输出:19
DigitSum (int) nif {
( 9n > )return {
% n 10 + DigitSum (/n 10 );}
}
☀️☀️☀️编写一个函数实现n的k次方,使用递归实现
结果演示
题6:
题目描述
代码编写(C语言版本)int
my_pow (,n) kif {
( <=k 1 )return {
; n}
return
* n my_pow (,n-k 1 );}
int
结果演示
题7:
题目描述
代码编写(C语言版本)☀️☀️☀️递归和非递归分别实现求第n个斐波那契数
例如:
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1
dig (int) nif {
( <=n 2)return {
1 ;}
return
dig (-n 1 )+ dig (-n 2 );}
结果演示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)