作者ptt0720 (湿湿)
看板C_and_CPP
标题[问题] 递回问题
时间Fri Nov 11 23:18:52 2016
macOS 10.12
GCC
无
我想请问递回的意思是直接呼叫自己就算吗 因为做了好几题还是很不懂
有没有哪边有比较多递回的CODE可以参考
河内塔 排列组合 我就搞到头晕了 主要是流程不太清楚
希望板上能推荐一些教材
还有 有哪些题目是用递回比较方便的吗 因为我发现递回的题目都是一些很漂亮的
不知道以後实战用到的机会多不多?
是这样的
我想要做一个程式
先给定一个值例如
120
然後给数量
8 (8笔资料)
接着输入个数 25 30 15 20 30 40 35 10
然後要印出有几种组合可以使总和=120
我知道把那些资料用阵列来存
但是我要如何用递回来找结果
要让总和等於120
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.105.31.4
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1478877541.A.CAA.html
11/11 23:33
11/11 23:34
11/11 23:35
11/11 23:45
11/11 23:46
~
※ 编辑: ptt0720 (59.105.31.4), 11/12/2016 00:03:51
1F:→ aiwhat: 对於数列第一个数字25有两种情况:取or不取 11/12 00:12
2F:→ aiwhat: 取:问题变为在30 15 20 30 40 35 10找出总和为95的组合 11/12 00:13
3F:→ aiwhat: 不取:在剩下七个数字中找出总和为120的组合 11/12 00:13
4F:→ aiwhat: 剩下的问题就是什麽时候该停止递回 11/12 00:17
5F:推 youtuuube000: 这问题你可以查看看dynamic programming的背包问题 11/12 00:21
6F:推 steve1012: 这个可以用一个integer 来模拟所有情形 写成for loop 11/12 03:01
7F:→ steve1012: 效率很高 11/12 03:01
8F:→ steve1012: 想写递回的话Google subset sum recursion 11/12 03:02
9F:→ steve1012: 有很多教学 11/12 03:02
10F:→ MOONRAKER: 因为消耗的资源较多 实用上不鼓励递回 11/12 04:59
11F:→ MOONRAKER: 但有一些刚好就是用递回考虑最简单的问题 或者规模可以 11/12 05:00
12F:→ MOONRAKER: 控制到相对小的问题 用递回解决并无不可 11/12 05:01
13F:→ MOONRAKER: 把它转换成iteration可能要浪费更多时间 或不易维护 11/12 05:02
15F:推 descent: C程序设计的抽象思维, recursive我觉得是可以投资的技巧 11/12 14:33
16F:→ ptt0720: 我要让资料都给使用者输入 如何让知道哪些输字是必须要的 11/13 11:18
17F:→ MOONRAKER: ?输入过滤用回圈或regex来match就好 跟递回有何关联 11/13 11:28