我想要一种算法来生成所有可能的 N 位数字,其数字按升序排列。
例如:如果 N=3,那么可能的数字是:012,123,234,246,567,259,因为:
0<1<2
...
2<5<9
等等
我该怎么做?
我开发了以下算法,但它只生成具有连续递增数字的数字,例如 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);
}
}