質問は次のとおりです。0 より大きい 2 つの int 値が与えられた場合、21 を超えずに最も近い値を返します。どちらもオーバーする場合は 0 を返します。
blackjack(19, 21) → 21
blackjack(21, 19) → 21
blackjack(19, 22) → 19
私がこれまでに持っているもの:
public int blackjack(int a, int b) {
if (a>21 && b>21){
return 0;
}
if (a<21 && b>21){
return a;
}
if (b<21 && a>21){
return b;
}
if (21-a < 21-b){
return a;
}
return b;
}
この質問はcodingbat.comからのもので、表示されるすべてのテストでこのコードは機能しますが、終了して「他のテスト」を表示すると、このコードは失敗します。これがうまくいかない特定の状況があると思いますが、今は思いつきません。何かご意見は?