【发布时间】:2015-02-16 09:35:41
【问题描述】:
我被要求生成 3 次幂集 {1,3,9,27,81,....} 的子集,然后按总和的升序排列子集,例如 { {},{ 1},,{3},{1,3},{9},{1,9},{3,9},{1,3,9},..........}。最后,当用户输入 n 时,我们需要打印第 n 个子集,例如如果 n=4,则解决方案是第三个子集 {1,3}。 n 的范围非常大。
我的疑问是:
- 我们如何达到主系列的上限。
- 我应该使用哪种数据结构
- 除了蛮力还有其他方法吗。
【问题讨论】:
-
添加类别“算法”
-
您的问题看起来像“以 3 为基数计数”。因此,我认为有比蛮力更好的解决方案。
-
我是初学者,如果有人可以指导我应该如何进行
-
在您的示例输出中,您缺少集合
{3}和{9}
标签: java algorithm numbers set