私は最近、ユーザ入力のint配列が昇順に並べられているかどうかをチェックするプログラムの作成を終了しました。私はここで私の機能isAscを持っています:java-recursion code explanation(昇順でチェックする)
public static boolean isAsc(int[] arr, int index){
if (index==1 || arr.length==1){
return true; //Base case
}
else if (arr[index-2] >= arr[index-1]){
return false;
}
else
return isAsc(arr, index-1); //recursive step
}
論理は正しいようです。しかし、私は関数を呼び出すときに私が得ることはありません:System.out.print(isAsc(arr, arrayLength-1));
出力が間違っています。このSystem.out.print(isAsc(arr, arrayLength));
は正解を返します。どうして?ありがとう!
表示される出力は何ですか?あなたが使った配列は何ですか? – Malvolio
正確に(隣接して)ソートされているにもかかわらず、重複した数字があると、ロジックはfalseを返します。 '> ='を '>'に変更してください。 – Bohemian
@Malvolio 1 2 4 3それは真を返す。とにかく、私はそれを今すぐ分かった –