求大佬讲解一下这个程序递归的含义(递归,有哪个大神给我讲讲这个递归的意思啊)

2805℃ BETTY

求大佬讲解一下这个程序递归的含义(递归,有哪个大神给我讲讲这个递归的意思啊)

递归,有哪个大神给我讲讲这个递归的意思啊

递归算法,俗称自己调用自己,同时设置有结境就是如同出口跳出方法。这里的出口就是

if (i <= 0)

return 0;

else if(i > 0 && i <= 2)

return 1;

//最后Foo方法里面几乎都是1.只有偶数时才会是0

你可以的调试运行一下在慢慢理解就明白了.

把方法值Foo(4)改成4小点 结果3

运行如下:

Foo Foo

3 2 等于4时

2 1 等于3时

等于2或1时就直接返回1了 所以1+1=2, 因为 return Foo(i -1) + Foo(i - 2); 所有之和又会进入Foo方法 等于执行完又回传了 2传入Foo方法值等于1 最后结果就是1+1+1=3最后值

把方法值Foo(3)改成3小点 结果2

运行如下:

Foo Foo

2 1 等于3时

等于2或1时就直接返回1了 所以1+1=2, 因为等于3时已经返回就是return 最终值,所有最后不用加.最后值 1+1=2

希望能帮到你

C语言求高手求解释,这个递归函数是什么意思?

fun(k)的意思就是如果k>0就输出一次k 然后再运行fun(k-1) 如果k<=0 就不满足if的条件 函数就终止了

请大家解释一下这个递归的过程

void reverse(int a[],int n){ 这是一个用来倒序的递归,传进来的是一个整形的数组 a[] n为这个数组需要处理元素的长度,即将第一个元素换到哪个位置

int t,i;

if (n==1) return; //如果已经完成就退出递归

     t=a[0]; 让变量t等于这个需要倒序的数组的第一个元素

     for ( i=0;i

        a[i]=a[i+1]; 每个元素都往前移动一位

     a[n-1]=t; 最后一位即为第一个

此时 第一个元素已经放到了数组的最后

如果说刚开始的时候数组的元素为a[] ={0,1,2}的话,那么经过一次这个算法的时候a[]={1,2,0}

此时因为已经将最前的一个弄到了最后面,所以最后面的那个元素我们就不对它做处理了

这里的处理方式就是,本来数组长度为3,但我对它倒序的时候我只倒序前面的2个元素

即n-1,就好像此时将a[]={1,2}传到这个方法里面,此时的a[]数组中第一个元素已经是原来数组的第二个元素,所以要将它的第一个元素放到原来数组的倒数第二个位置,n-1就做到了这步,每执行一次这个方法需要处理的元素都会减少一个,直到最后一个元素交换完成,即数组元素需要处理的元素为1

reverse(a,n-1);

}

哪位大哥给我分析一下这个简单的递归程序?谢!

给你解释函数吧

void palin(n) //n个数的逆序

int n;

{

char next;

if(n<=1) //如果n<=1,直接输出该字符并换行

{

next=getchar();

printf("\n\0:");

putchar(next);

}

else

{

next=getchar();

palin(n-1); //如果字符数>=1,则一边输入一边递归n-1并输出

putchar(next);

}

}

举个例子,比如倒序abcde就相当于:倒序bcde+输出a

倒序bcde相当于:倒序cde+输出b

以此类推完成递归