2012-11-22 3 views
1

결과로 항상 "1"이됩니다. :(
이 기능에 무엇이 잘못스칼라 : 꼬리 반복 함수 함수

def power(base: Int, exp: Int): BigInt = { 
     def _power(result: BigInt, exp: Int): BigInt = exp match { 
      case 0 => 1 
      case _ => _power(result*base, exp-1) 
     } 
     _power(1, exp) 
    } 

답변

7

당신이 그렇게 교체해야 : 각 호출`exp` 감소하고 있기 때문에 ... case 0 => result

+0

을하고'에 얻을 때 0 ' – nietaki

+3

'case 1 => result'를 의미한다고 생각하는데, 제대로 작동하려면'case 0 => 1'이 필요합니다. – DaoWen