【发布时间】:2012-01-29 20:50:03
【问题描述】:
我正在尝试有效地列出 1 到 100 之间的数字。但是我必须去掉具有相同数字的数字。
示例:
根据这条规则,12 与 21 相同
13 是 31
14 是 41
所以 for 循环不会超过相同的数字。
我正在考虑一些技巧,例如获取从 1 到 100 的所有数字,然后删除找到的当前数字的排列。
我问这个的原因是因为在像 100000 这样的大范围内它会失败。
另一个例子: 124 等于 142,241,214,412,421
【问题讨论】:
-
为什么要去掉相同数字的数字?这是作业题吗?
-
看起来像一个家庭作业。写代码有什么问题?
-
不,这不是作业。我正在寻找有效的解决方案,因为我可以自己应用一种幼稚的方法。
-
您的幼稚解决方案的代码在哪里?
-
我在想你只需要第 (n) 位大于或等于第 (n-1) 位的数字 - 因为如果你遇到例如 31,你会知道您已经有了较小的数字 13,因此您不需要 31。这有帮助吗?
标签: c++ performance algorithm math