递归里面return的问题求解
#include "stdio.h"
int num[10];
//保存分解式
void huafen(int m, int n, int k) // m表示待划分的数,n表示可用的最大的数,k表示已经分解的个数。
{
int i;
if(m == 0)
{
for(i = 0; i < k; i++)
printf("%d ",num[i]);
printf("\n");
return;
}
for(i = m>n?n:m; i >= 1; i--)
{
num[k] = i;
huafen(m-num[k],num[k],k+1);
// 递归调用对剩下的数进行分解,最大的分解数为num[k] , 以保证分解的数由大到小,防止消除重复的分解。
}
}
int main()
{
int m,n,k;
huafen(6,6,0);
return 0;
}
我在调试的时候发现.
第一步.
m n k 分别是6 6 0
然后再进行递归时.
m n k 是 0 6 1
然后执行了if语句里面的输出
但当执行到return时
下一步会直接到for循环.
此时i = 5.
为什么return会到了for. 为什么i成了5??
求解. 谢谢
...全文
相关推荐
Java实现用递归算法和非递归算法求解斐波那契数列问题.docx
Java实现用递归算法和非递归算法求解斐波那契数列问题.docx
递归求解几类排列组合问题
递归求解几类排列组合问题,求组合数列的情况
C语言数据结构递归算法之迷宫求解
数据结构习题与解析(B级第3版) 李春葆 喻丹丹 编著 3.4
递归地求解Fibonacci数列.pdf
在Python中,递归地求解Fibonacci数列是一个常见的编程问题。Fibonacci数列是一个整数序列,其中每个数字(从第三个开始)是前两个数字的和。序列的前两个数字是0和1。 以下是一个使用递归在Python中求解Fibonacci数列的示例:在Python中,递归地求解Fibonacci数列是一个常见的编程问题。Fibonacci数列是一个整数序列,其中每个数字(从第三个开始)是前两个数字的和。序列的前两个数字是0和1。 以下是一个使用递归在Python中求解Fibonacci数列的示例:在Python中,递归地求解Fibonacci数列是一个常见的编程问题。Fibonacci数列是一个整数序列,其中每个数字(从第三个开始)是前两个数字的和。序列的前两个数字是0和1。 以下是一个使用递归在Python中求解Fibonacci数列的示例:在Python中,递归地求解Fibonacci数列是一个常见的编程问题。Fibonacci数列是一个整数序列,其中每个数字(从第三个开始)是前两个数字的和。序列的前两个数字是0和1。 以下是一个使用递归在Python中求解Fibonac
### 递归求解 Fibonacci 数列 pta
递归求fabonacci数列 pta


新手乐园
