Error[8]: Undefined offset: 220, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

目录


🎈:经典之所以被称为经典,是因为在大部分的题目中都能够找到它们的影子,经典题的解题思路已潜移默化的渗透到每道题中,只有我们掌握好经典题的解题思路,我想我们解题能力也定会更上一层楼。
🎈:这篇博客主要是对一些经典的递归题目进行讲解,让你对递归题不再恐惧!!

题1: 题目描述

☀️☀️☀️递归方式实现打印一个整数的每一位

代码编写(C语言版本)
void print(int n) {
	if (n > 9) {
	print(n / 10);
	 }
	printf("%d ", n % 10);
}
结果演示

题2: 题目描述

☀️☀️☀️ 递归求n的阶乘(不考虑溢出的问题)

代码编写(C语言版本)
int mul(int n) {
	if (n <= 1) {
		return 1;
	}
	return n * mul(n - 1);
}
结果演示

题3: 题目描述

☀️☀️☀️ strlen的模拟(递归实现)

代码编写(C语言版本)
int my_strlen(char* arr) {
	if (*arr == ')'return
		0 ;else
	return 1 + my_strlen (+arr 1 );}
void
结果演示

题4: 题目描述

☀️☀️☀️编写一个函数 reverse_string(char * string,int left,int right)(递归实现)
实现:将参数字符串中的字符反向排列,不是逆序打印。
要求:不能使用C函数库中的字符串 *** 作函数。

代码编写(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: 题目描述

☀️☀️☀️写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
输入:1729,输出:19

代码编写(C语言版本)
DigitSum (int) nif {
	( 9n > )return {
		% n 10 + DigitSum (/n 10 );}
	}
☀️☀️☀️编写一个函数实现n的k次方,使用递归实现
结果演示

题6: 题目描述

int

代码编写(C语言版本)
my_pow (,n) kif {
	( <=k 1 )return {
		; n}
	return
	* n my_pow (,n-k 1 );}
int
结果演示

题7: 题目描述

☀️☀️☀️递归和非递归分别实现求第n个斐波那契数
例如:
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1

代码编写(C语言版本)
dig (int) nif {
	( <=n 2)return {
		1 ;}
	return
	dig (-n 1 )+ dig (-n 2 );}
[+++]
结果演示

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
C语言——函数递归实现_C_内存溢出

C语言——函数递归实现

C语言——函数递归实现,第1张

目录
  • 题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: 题目描述

☀️☀️☀️ 递归求n的阶乘(不考虑溢出的问题)

代码编写(C语言版本)
int mul(int n) {
	if (n <= 1) {
		return 1;
	}
	return n * mul(n - 1);
}
结果演示

题3: 题目描述

☀️☀️☀️ strlen的模拟(递归实现)

代码编写(C语言版本)
int my_strlen(char* arr) {
	if (*arr == ')'return
		0 ;else
	return 1 + my_strlen (+arr 1 );}
void
结果演示

题4: 题目描述

☀️☀️☀️编写一个函数 reverse_string(char * string,int left,int right)(递归实现)
实现:将参数字符串中的字符反向排列,不是逆序打印。
要求:不能使用C函数库中的字符串 *** 作函数。

代码编写(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: 题目描述

☀️☀️☀️写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19
输入:1729,输出:19

代码编写(C语言版本)
DigitSum (int) nif {
	( 9n > )return {
		% n 10 + DigitSum (/n 10 );}
	}
☀️☀️☀️编写一个函数实现n的k次方,使用递归实现
结果演示

题6: 题目描述

int

代码编写(C语言版本)
my_pow (,n) kif {
	( <=k 1 )return {
		; n}
	return
	* n my_pow (,n-k 1 );}
int
结果演示

题7: 题目描述

☀️☀️☀️递归和非递归分别实现求第n个斐波那契数
例如:
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1

代码编写(C语言版本)
dig (int) nif {
	( <=n 2)return {
		1 ;}
	return
	dig (-n 1 )+ dig (-n 2 );}

结果演示

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/727049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存