其他分享
首页 > 其他分享> > C语言函数的递归调用

C语言函数的递归调用

作者:互联网

一,

1,递归的基本概念:
程序调用自身的编程技巧称为递归。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似较小的问题来求解,递归策略只需少量的程序可描述出解题过程所需要的多次重复计算,大大的减少了程序的代码量。
2,递归的主要思考方式在于:大事化小
3,递归的两个必要条件

二,示例1

利用递归求100以内所有数相加之和

#include<stdio.h>
int digui(int n);//递归函数的函数说明
int main()
{
	int i=100;
	int ret =digui(i);//ret等于函数的返回值
	printf("一百以内所有数字之和为%d",ret);//结果为5050
	return 0;	
}
int digui(int n)
{
	if(n>=1)
	 {
		return n+digui(n-1)
	 }
	else
		return 0;
}

上述递归调用分解过程分解

示例2

用递归方法打印出斐波拉契数列
什么是斐波拉契数列?
例如:
1 1 2 3 5 8 13 21 34 55…像这样从第三项起每项都等于前两项相加之和的数组成的数列叫作斐波拉契数列

#include<stdio.h>
int feibolaqi(int n);//斐波拉契数列递归函数的函数说明
int main()
{
	int i;
	int test;
	scanf_s("%d",&i);//输入你想知道斐波拉契数列中的第n个数,n最好不要超过40不然计算机运算压力太大可能会运行不出来
	test = feibolaqi(i);
	printf("\n第%d个数为%d",i,test);
}
int feibolaqi(int n)//n表示斐波拉契数列中的第n个数
{
	if(n > 2)
		return feibolaqi(n-1) + feibolaqi(n-2);
	else
		return 1;
}

上述递归调用分解过程
例如要想知道第10个数则:

总结:感觉递归过程就像一个反复调用自身的过程,直到调用到无法调用之时,在沿原路返回
如有补充或者不同观点欢迎在评论区留言!!!
互相学习,互相进步!!!

标签:feibolaqi,return,递归,int,digui,C语言,调用,100
来源: https://blog.csdn.net/m0_53365899/article/details/117286945