여기에 질문 : 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에서, 그리고이 코드가 작동하지만이에 "다른 검사 완료 때 보여줍니다 모든 테스트입니다 ",이 코드는 실패합니다. 이것이 작동하지 않는 특정 상황이 있다고 생각하지만 지금은 생각할 수 없습니다. 이견있는 사람?
a가 18이고 b가 19 인 경우 프로그램이 반환하는 것과 그 이유는 무엇입니까? 맨 아래 21에 가장 가까운 숫자가 가장 큰 숫자가 아닌가? – dcaswell
적어도 하나가 정확히 21 인 사례가 누락되었습니다. –