#include <stdio.h>
#include <math.h>
int recursive(int n);
int main(void)
{
int i;
printf("숫자를 입력하세요 : ");
scanf("%d", &i);
recursive(i);
}
int recursive(int n);
{
int i;
if (n < 1)
return 2;
else
{
i = (2 * recursive(n - 1)) + 1;
printf("%d\n", i);
return i;
}
}
이거 실행하면 답이
5
11
23
47
95
이거라는데
나는 답이 95같은데 .. 왜 결과가 95 하나만 나오는게 아니고 여러줄이 나오는거에요??
비쥬얼 스튜디오가 오류땜에 실행이 안되서 질문드려요
recursive 내에 printf 하는데 recursive 가 recursive 를 반복적(재귀적)으로 호출하니까 계속 찍힘
printf를 여러번부름 > recursive(n) 실행하면 recursive(n-1) ~~~~~~~~~~ recursive(1)까지 반복되니간
재귀 검색 ㄱ - dc App
f(x) 같은건데.. f(1) = 2 네. 여기서 종료됨. f(x) = 2 * f(x - 1)) + 1 이거임
아.. f(1) 이 아니라 f(0) = 2
f(0) = 2 f(1) = 2 * f(0) + 1 = 5 f(2) = 2 * f(1) + 1 = 11 ... 직접 계산해보셈.
잘 이해 안 되면 초중고딩 때 함수 배우는데 함수편만 다시 보셈. 고딩 때 점화식, 등비수열 이런거 꼭 보구.
재귀잖아
답변 다들 감사합니다..
담부턴 비주얼 스튜디오 기준 f11로 한줄씩 디버깅하고나서 질문하셈 - dc Cpp
f5 중단점 만날때까지 쭉 진행 f10 서브루틴 안들어가고(서브루틴에 중단점 있으면 거기서 멈춤) 한줄씩 진행 f11 서브루틴 다 들어가면서 한줄씩 진행 - dc Cpp
알겠습니다 조언감사합니다..