c언어 재귀함수 관련 질문
글쓴이: linux_chobo / 작성시간: 수, 2021/04/14 - 10:13오후
c언어 재귀함수 관련 문제를 풀다가 막히는 부분이 있어서 질문 드립니다.
문제는 다음과 같습니다.
좀 분석을 해보니까 n에 따라 가능한 경우의 수를 f(n)이라 하면
f(n+1) = f(n) + 2f(n-1) [f(1) = 1, f(2) = 3]
이라는 점화식이 나와서 코드를 짜봤습니다
#include <stdio.h> int ncase(int n) { if(n == 1) return 1; else if(n == 2) return 3; else return ncase(n-1) + 2* ncase(n-2); } int main(void) { int k, m; scanf("%d %d", &k, &m); printf("%d\n", ncase(k) % m); }
이렇게 짜고 제출을 했는데 통과하지 못한 테스트케이스가 있다면서 오답이라고 하더라고요 이 코드의 뭐가 문제인지 아시는 분 있을까요
문제 링크는 https://level.goorm.io/exam/43165/%ED%83%80%EC%9D%BC-%EC%B1%84%EC%9A%B0%EA%B8%B0/quiz/1
여기입니다
Forums:
n에 1000 넣고 돌려보세요. 뭐가 문제인지 바로
n에 1000 넣고 돌려보세요. 뭐가 문제인지 바로 알 수 있게 될 겁니다.
점화식 만드는 능력이 부럽네요 ㅠㅠ 점화식만들면
점화식 만드는 능력이 부럽네요 ㅠㅠ 점화식만들면 재귀로 타임오버되는걸 dp로 해결할수있는데
댓글 달기