생활
재귀 호출을 반복하는 함수에 대해 문의 드립니다.
아래 코드 중에서
return min(walk(n - 2) +1,walk(n - 3) + 1)
여기서 왜 +1을 하는 것인지 설명 부탁드립니다.
또, 재귀 호출 문이 두번씩이나 이루어지기도 하는데 아래 코드가 해석이 가능하신 답변자분 찾습니다.
#include <stdio.h>
int min(int x, int y)
{
if (x < y)return x;
return y;
}
int walk(int n)
{
if (n == 0) return 0;
if (n < 0 || n == 1) return 9999999;
return min(walk(n - 2) +1,walk(n - 3) + 1);
}
int main()
{
int n = 16;
printf("%d\n", walk(n));
return 0;
}