algorithm - 确定一个数的所有倍数的特定算法

标签 algorithm

我正在尝试确定我正在做的项目的算法。目标是获得所有数字组合序列,其中每个相邻数字的最大值是彼此的倍数。数字和序列长度是输入。

例子: 如果我给出一个序列长度为 3 和一个最大数为 5 的输入,我应该得到这样的输出。

[ 1, 1, 1 ]
[ 1, 1, 2 ]
[ 1, 1, 3 ]
[ 1, 1, 4 ]
[ 1, 2, 4 ]
[ 1, 3, 3 ]
[ 1, 4, 4 ]
[ 2, 2, 2 ]
[ 2, 2, 4 ]
[ 2, 4, 4 ]
[ 3, 3, 3 ]
[ 4, 4, 4 ]

在所有序列中,每个数字都是其前一个邻居的倍数,而所有数字都小于 5,这是作为输入给出的最大值。

最佳答案

您可以使用回溯来获取所有您想要的序列。

回溯与 DFS 非常相似。您可以创建使用参数{您在序列中输入了多少个数字}的递归函数,并在序列中输入适当的值(参数+ 1)后调用递归函数。 在函数结束时,你必须清除你按顺序输入的数字。 如果序列已满,您还将终止该功能。

关于algorithm - 确定一个数的所有倍数的特定算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50888626/

相关文章:

在可能包含任意数量的重复的列表中查找重复数字的算法

java - 枚举以获得固定值并且不使用 map

c++ - 二维矩形的 boolean 运算

algorithm - 城市中电厂的最优分布

java - 为什么我的快速求幂算法在 lambda 参数中出现 'cannot find symbol' 错误?

algorithm - 用于创建矩阵的蛮力算法的紧渐近

c# - "callback dispatcher"组件需要更好的设计

algorithm - 均匀分布点数

Java 8 高级排序

c - 检查二维数组中不连续分组的更好算法