Programing/C- programing

Default Parameter를 이용한 피보나치 수열

sosal 2010. 9. 1. 11:19
반응형

/*
 http://sosal.tistory.com/
 * made by so_Sal
 */

디폴트 파라미터는, 함수의 매개변수에 자동으로 값을 넣어주도록 합니다.
아래 피보나치 함수(재귀)로 예를 들것인데,
int fibo(int depth,int a=0,int b=1);
정의부분을 보면 a,b 매개변수에 값을 0,1을 주도록 되어있습니다.

메인함수나 다른 루틴에서 위 함수를 호출할 때
fibo(0) 은 곧 fibo(0,0,1)을 의미하고,
fibo(5,1) 은 곧 fibo(5,1,1)을 의미합니다.
fibo(5,5,3) 은 곧 fibo(5,5,3)을 의미합니다.
간단하죠? , 아래는 디폴트 파라미터의 예제입니다.

중요한것은 Default parameter를 구현할 때, 정의 부분에서 값을 넣어주되,
선언부분에서는 값을 넣으면 안됩니다.

선언부 / 정의부 따로 구분을 하지 않을 땐, 바로 default parameter값을 넣어주시면 됩니다.
이것은 C++에서만 가능합니다.

#include<iostream>
using namespace std;

int fibo(int depth,int a=0,int b=1);

int main(){
    fibo(30);
    cout<<endl;
    return 0;
}

int fibo(int depth,int a,int b){
    if(depth == 0)
        return 0;
    cout<<a<<" ";
    return fibo(depth-1,b,a+b);
}