C 언어의 기본

Dorogono·2022년 4월 21일
0
post-thumbnail

8. 입력받은 정수 n을 활용해 2의 n승 값을 구하는 재귀함수를 구현하라.

#include <stdio.h>

int sum = 1;

void recursive(int n)
{
	if (n == 0)
	{
		return;
	}
	sum *= 2;
	recursive(n - 1);
}

int main(void)
{
	int n;

	printf("숫자 : ");
	scanf_s("%d", &n);

	recursive(n);

	printf("%d", sum);

	return 0;
}

다른 함수와는 다르게 재귀함수와 main 함수에서 같은 변수를 활용할 수 있도록 전역변수를 선언했다.

  1. 입력받는 변수인 n은 main 함수 내에서 선언한다.
  2. 재귀함수인 recursive를 정의하고, 변수 n을 받는다.
  3. 0이면 1이기 때문에, 0을 받으면 함수를 끝낸다.
  4. 3번 이유뿐만이 아니라, 재귀함수를 끝내는 종료 조건을 걸어준 것이다.
  5. 그렇게 0이 될 때까지 계속해서 2를 곱할 수 있도록 만들 수 있다.
  6. 정의한 재귀함수는 출력형태가 int가 아니기 때문에 return값을 따로 주지 않아도 된다.
  7. 6번 이유로 답 변수인 sum을 전역변수로 준 것이다.
profile
3D를 좋아하는 FE 개발자입니다.

0개의 댓글