オンラインで質問を見つけました。入力サイズを指定すると、そのサイズの整形式の数値がすべて印刷されます。
例:サイズ= 3数値:123、234、125など。条件、たとえば数値がabcの場合、a <b <c
私はこのための再帰コードを書き込もうとしていますが、再帰を吸うので、基本ケース、または再帰から抜け出す方法を理解できません。私は1つのアイデアを持っていました:
- 私は与えられたサイズの最も小さい整形式の数から始めます(配列をで埋めるだけ
for loop
です)。サイズ=3と言うと、から始め123
ます。次に、指定されたサイズarr[0] == (10 - size))
の最大値がarr[0]
整形式の数値になるまで続けます。
私の機能はprintNumbers(int arr[], int size)
しかし、これがうまくいくかどうかはわかりません。正しい方向にいくつかのポインタが必要です。
public void findNumbers(int arr[], int size, int pos)
{
if(arr[0] == (10 - size))
return;
if(arr[pos] == (10 - size + pos))
{
pos--;
findNumbers(arr,size,pos);
}
System.out.println(Arrays.toString(arr));
arr[pos] = arr[pos] + 1;
findNumbers(arr,size,pos);
}
public static void main(String[] args)
{
int size = 3;
int pos = size-1;
int arr[] = new int[size];
for(int i = 0; i<size; i++)
{
arr[i] = i+1;
}
//System.out.println(Arrays.toString(arr));
WellFormed obj = new WellFormed();
obj.findNumbers(arr, size, pos);
}