递归里面return的问题求解

xiaojiezizizi xiaojiezizizi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区


#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

zpl19880112

递归求解几类排列组合问题

递归求解几类排列组合问题,求组合数列的情况

亿念之茶

C语言数据结构递归算法之迷宫求解

数据结构习题与解析(B级第3版) 李春葆 喻丹丹 编著 3.4

gaoyang_young

递归地求解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

Dalao_zzl

### 递归求解 Fibonacci 数列 pta

递归求fabonacci数列 pta

资深码里奥
评论 9
收藏 已收藏
分享
返回顶部
xiaojiezizizi
新手乐园 33,315 成员 41,769 内容