オンラインで質問が見つかりました:入力サイズが指定されていれば、よく形成された数字を印刷するための再帰コードの基本ケース
例:サイズ= 3つの 番号:123、234、125等の条件は、数がABCその後< B < C私はこのために再帰コードを記述しようとしてい
て以来であると言います私は再帰で吸うベースケースを把握することができない、または再帰から出る方法。
- 私は、指定されたサイズの最小の整形番号から始まります(配列には
for loop
と入力してください)。サイズ= 3と言うと、私は123
で始まります。その後、私はarr[0] == (10 - size))
まで進みます。これは、指定されたサイズのための最大値がarr[0]
であることを示しています。
My機能は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);
}
あなたが立ち往生したときに、ここでコードを投稿してみてはいかがですか? – DNA
@DNA:私が書いたコードを示しました。問題は '789 'に達した後で止まらないということです。どのように「中断するか」を理解することはできません。 – noMAD