【发布时间】:2013-10-23 10:55:02
【问题描述】:
我想要一个算法来生成所有可能的 N 位数字,其数字按升序排列。
例如:如果 N=3,那么可能的数字是:012,123,234,246,567,259,因为:
0
...
2
等等
我该怎么做?
我开发了以下算法,但它只生成数字连续增加的数字,如 123,234,345,456,567 等。因此,大量数字被遗漏。
private static void generate(int start,int n)
{
if((start+n)>9)
return;
else
{
for(int i=0;i<n;i++)
System.out.print(start+i);
System.out.println();
generate(start+1,n);
}
}
【问题讨论】:
-
尝试将问题分解为一组较小的问题。例如,您需要生成 10 位数字。如果你已经解决了 9 位数字,你能得到你的答案吗? 5位数字呢?
标签: algorithm