재귀도 존나 개념자체는 쉬운거같은데 이걸 응용해서 만드는게 존나 어려운거같음


분할정복도 걍 반으로 나누고 나누고 나눠서 맨아래서부터 올라온다고 생각하면 편하긴한데


이걸 코드로 마주하면 너무 어려운거같다..


종만북 177페이지인데


1부터 n까지의 합 구하는 함수가


int fastSum(int n) {


if (n == 1) return 1;

if (n % 2 == 1) return fastSum(n - 1) + n;

return 2 * fastSum(n / 2) + (n / 2) * (n / 2);

}


이렇게 표현될수있다는데 왜 이렇게되는지 책 설명을 읽어도 도저히 모르겠음... 왜이렇게되는지 누가좀 도와져..