首页技术递归函数c++简单实例(递归函数返回的是什么)

递归函数c++简单实例(递归函数返回的是什么)

编程之家2026-06-221021次浏览

本篇文章给大家谈谈递归函数c++简单实例,以及递归函数返回的是什么对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

递归函数c++简单实例(递归函数返回的是什么)

用C++语言编写程序,递归函数

1、在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。在编程语言中,把直接或间接地调用自身的函数称为递归函数。函数的构建通常需要一个函数或者一个过程来完成。

2、递归函数是建立在嵌套的基础上的,只不过嵌套调用了自己本身,而且经常不是显式调用。一个含直接或间接调用本函数语句的函数被称之为递归函数,它必须满足以下两个条件:

1)在每一次调用自己时,必须是(在某种意义上)更接近于解;

2)必须有一个终止处理或计算的准则。

例如一个非法的递归(嵌套)调用:

void ff(){

递归函数c++简单实例(递归函数返回的是什么)

ff();

}

int main()

{

ff();

system("pause");

递归函数c++简单实例(递归函数返回的是什么)

return 0;

}

C++中什么是递归函数,一般用在什么地方

递归在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。

一般用在可以被简化成各个小问题的复杂大问题里。

斐波那契数列是典型的递归案例:Fib(0)= 0 [基本情况]Fib(1)= 1 [基本情况]对所有n> 1的整数:Fib(n)=(Fib(n-1)+ Fib(n-2)) [递归定义]

求用递归函数解决伪币问题的C++代码,编辑环境VC++6.0

/*

题目:81枚硬币中,有一枚假币且这枚假币比其它的轻。称四次把这枚硬币找出来。

算法

81=3^4

把所有的硬币分成数目相同的三份,把两份(x和y)放在天平上,如果重量不等,则假币在轻的一份里;如果重量相等,则假币在没称的那份里(z)。此时硬币总量变为1/3。依此循环,称三次后,剩三枚硬币,再称一次则可找出假币。

这个题适合于用递归来解决。递归的特点是:函数里面嵌套本函数。递归函数的执行分为两个环节:递推和回归:遇到本函数则递推;函数有了最终值时开始回归。

主函数中定义了重量为10的81枚硬币(其中第10枚为假币,重量为6)。递归函数weight(m,n)的参数m,n分别是当前所有硬币的序号的开始数和结束数(例如,称了第1次发现硬币可能在第1-27枚中,则m=1,n=27。)当m=n时,假币找到,函数开始回归。

*/

#include<stdio.h>

#define count 81

#define badcoin 10

int weight(int m,int n);

int a[count];

int main()

{

int i;

int t= 0;

for(i= 0;i<count;i++)

a[i]= 10;

a[badcoin]=6;

t= weight(1,count);

printf("the%dth coin is bad!\n",t);

return 0;

}

int weight(int m,int n)

{

int j=0;

int i=0;

int x=0;

int y=0;

int z=0;

if(m>=n)

return m;

for(i=0;i<(n-m+1)/3;i++,j++){

x+=(a[m+j]);

y+=(a[m+(n-m+1)/3+j]);

z+=(a[m+2*(n-m+1)/3+j]);

}

if(x==y){

m= m+2*(n-m+1)/3;

weight(m,n);

}

else if(x>y){

m= m+(n-m+1)/3;

n= m+(n-m+1)/2-1;

weight(m,n);

}

else{

n=m+(n-m+1)/3-1;

weight(m,n);

}

}

文章到此结束,如果本次分享的递归函数c++简单实例和递归函数返回的是什么的问题解决了您的问题,那么我们由衷的感到高兴!

ai发展带来的好处(人工智能对社会发展有什么好处)ai的发展趋势 人工智能发展的趋势是什么