나의 작은 valley

[C언어] 재귀호출 예제 본문

Computer Science/[C언어] 문법 정리

[C언어] 재귀호출 예제

붕옥 아이젠 2022. 9. 18. 12:38
728x90

//팩토리얼 구현하기

:팩토리얼이란 ex) 5! = 5*4*3*2*1, 0! =1

#include <stdio.h>	

long recursive_factorial(int n);

int main()
{
	int num = 5;
	printf("%d\n", recursive_factorial(num));
	return 0;
} 

long recursive_factorial(int n)
{
	if (n == 0)
		return 1;
	else
		return n * recursive_factorial(n - 1);
}

 

 

 

 

//이진수 변환 예제

#include <stdio.h>	


/*이진수 변환법
	
	10
	10 / 2 = 5, remainder = 0
	 5 / 2 = 2, remainder = 1
	 2 / 2 = 1, remainder = 0
	 1 / 2 = 0, remainder = 1
	10은 2진수로 1010이다.
*/
void print_binary(unsigned long);
void print_binary_loop(unsigned long);

int main()
{
	unsigned long num = 10;

	print_binary_loop(num);
	return 0;
} 



void print_binary_loop(unsigned long n)
{
	int remainder = n % 2;

	if (n >= 2)
		print_binary_loop(n/2);
	printf("%d", remainder);

	return 0;
}

 

 

 

//피보나치 수열

#include <stdio.h>	


/*
	Fibonacci sequence
	1, 1, 2, 3, 5, 8, 13 ... etc
*/


int fibonacci(int number);

int main()
{	
	int count = 7;
	printf("%d ", fibonacci(count));

	return 0;
} 

int fibonacci(int number)
{
	if (number == 1)
		return 1;
	if (number == 2)
		return 1;
	return fibonacci(number - 1) + fibonacci(number - 2);
}

 

728x90
Comments