Re: [问题] 简单的排列

楼主: pttworld (批踢踢世界)   2016-09-20 01:01:28
提供此问题递回处理的观念。
人类遇到a + b + c的情况只能先处理两个,再进行结果与第三个的这两个。
准备swap函式。
关键在循环分群切点,将数列分成两堆。
基础
1 2
2 1
递回
星号为循环迭代切点位置
1 * 2 3
2 3 1
其中
2 3又可
2 3
3 2
迭代
1 2 * 3
3 1 2
其中
1 2又可
1 2
2 1
如果阵列存在重复数字,使用索引。
※ 引述《mikemagic88 (Mikemagic88)》之铭言:
: 开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
: Dev C++
: 额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
: 应该没有吧
: 问题(Question):
: 使用者输入数字后, 输出所有可能之排列.
: 喂入的资料(Input):
: 假设是3好了
: 预期的正确结果(Expected Output):
: [1] 1, 2, 3
: [2] 1, 3, 2
: [3] 2, 1, 3
: [4] 2, 3, 1
: [5] 3, 1, 2
: [6] 3, 2, 1
: 错误结果(Wrong Output):
: 无
: 程式码(Code):(请善用置底文网页, 记得排版)
: http://ideone.com/7iBiyM
: 补充说明(Supplement):
: 分为 "不使用递回" 和 "使用递回" 两种状况
: 我先不用递回写
作者: cosrabbit (Putz)   2016-09-22 21:08:00
人真好欸
作者: f88643 (蛤时愈皮险恶评语言语)   2016-09-22 21:25:00
要怎么把数字带到*那边 索引又该怎么用勒

Links booklink

Contact Us: admin [ a t ] ucptt.com