나의 작은 valley
[C언어] 재귀호출 예제 본문
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
'Computer Science > [C언어] 문법 정리' 카테고리의 다른 글
[C언어] 포인터의 작동 원리, 기본적인 사용 방법 (0) | 2022.09.18 |
---|---|
[C언어]헤더 파일 만드는 법 (0) | 2022.09.18 |
[C언어] 재귀 호출에 대한 이해 (0) | 2022.09.18 |
[C언어] 변수의 영역, 지역변수와 스택 (0) | 2022.09.18 |
[C언어]함수의 프로토타입, 자료형, 반환값 (0) | 2022.09.17 |
Comments