[알고리즘] Recursion(1)

황재성·2022년 5월 15일
0

알고리즘

목록 보기
1/1
post-thumbnail

Recursion

자기 자신을 호출하는 함수

void func(...)
{
	...
   	func(); 
    ...
}

1 ~ n 까지의 합

int main(){
	int result = func(4);
}

int func(int n){
	if ( n == 0 )
    	return 0;
        
    else
    	return n + func(n-1);
}

Factorial

int factorial(int n)
{
	if ( n == 0 )
    	return 1; //factorial 의 정의
    else 
    	return n * factorial(n-1);
}

시간복잡도 O(n)

Xn

double power(double x, int n){
	if (n ==0)
    	return 1;
    else 
    	return x * power(x, n-1);
}      

시간복잡도 O(n)

fibonacci Number

f0 = 0;
f1 = 1;

int fibonacci(int n){
	if (n<2)
    	return n;
    else 
    	return fibonacci(n-1) + fibonacci(n-2);
}

최대공약수

int gcd(int m, int n){
	if ( m < n ) {
    	int tmp=m; m=n; n=tmp;
	}
    if (m%n==0)
    	return n;
    else 
    	return gcd(n, m%n);
}

출처 : http://www.kocw.net/home/search/kemView.do?kemId=1148815

profile
데이터사이언스와 자연어처리를 공부하고 있습니다.

0개의 댓글