2017-12-05 1 views
0

정수 매개 변수 n을 허용하고 n에서 홀수를 제거하여 형성된 정수를 반환하는 evenDigits 메서드를 작성합니다. 다음 표에서는 몇 가지 호출과 예상되는 반환 값을 보여줍니다. 0 이외의 짝수 인 음수를 메서드에 전달하면 -34512가 전달 될 때 위의 그림과 같이 결과도 음수 여야합니다. 결과의 선행 0은 무시해야하며 숫자에 0 이외의 숫자가없는 경우 메서드는 마지막 세 출력에 표시된대로 0을 반환해야합니다. 샘플 전화 : evenDigits (8342116) 값이 리턴 : 8426 evenDigits (35179) 값이 리턴 : 0 evenDigits은 (-163505) 값이 리턴 : -60Java의 evenDigits

public int evenDigits(int n){ 
    int result = 0; 
    int a = n%10; 
    if(n==0){ 
     return 0; 
    } 
    if(a%2==0){ 
     result = a + 10*evenDigits(n/10); 
    } else { 
     result = evenDigits(n/10); 
    } 
    return result; 
} 

내가 솔루션을 함께했다하지만 난을 얻고 있었다 숫자 형식 오류 예외 문 만약 내가

if(n==0){ 
    return 0; 
} 

누군가가 문, 나는 그것에 대해 혼란 스러워요 경우 그 목적이 무엇인지 설명해 주시겠습니까입니다 시작에서이를 제거합니다. 그게 정확히 무엇입니까? 미리 감사드립니다.

답변

3

if (n == 0)블록 그렇지 않으면 무한 재귀 : 다른 모든 경우에, evenDigits 아직 다시 호출하는 방법을 알 수 있습니다.

n이 0이면 작업이 완료되고 모든 호출 스택이 풀릴 수 있습니다. 좋아하는 디버거로 직접보십시오.