8/30/2011

Make Fibonacci sequence function. / 피보나치 수열 함수 만들기

Below condition is Fibonacci sequence.


Fibonacci sequence start from 0, 1 and then next number is sum of previous two Fibonacci value.
ex) 011235813213455891442333776109871597, 2584, 4181, 6765, 10946...

Make Fibonacci function~
ex) F(0) = 0, F(1)=1, F(7)=13

----------------------------------------------------

피보나치 수는 0과 1로 시작하며, 다음 피보나치 수는 바로 앞의 두 피보나치 수의 합이 된다. 
ex) 011235813213455891442333776109871597, 2584, 4181, 6765, 10946...
피보나치 함수를 만들어라
ex) F(0) = 0, F(1)=1, F(7)=13

7 comments:

  1. Anonymous1/9/11 02:44

    JeKang's Code :

    #include

    void main()
    {
    int Rst[3]={0,1,1};
    int Num=0;
    int Temp=0;
    printf("숫자를 입력하세요. -> ");
    scanf("%d", &Num);

    if(Num==0) Rst[2]=0;
    else{
    for(int i=2;i<Num;i++){
    Temp=Rst[2];
    Rst[2]=Rst[1]+Temp;
    Rst[0]=Rst[1];
    Rst[1]=Temp;
    }
    }
    printf("결과값은 %d 입니다.\n",Rst[2]);
    }

    ReplyDelete
  2. Anonymous2/9/11 00:10

    민현규

    #include

    int a,b,c;
    void fun(int i);

    void main()
    {
    int i;
    scanf("%d",&i);
    fun(i);
    }

    void fun(int i)
    {
    a=0;
    b=1;
    if(i==0)
    printf("0");
    else if(i==1)
    printf("1");
    else
    {
    while(i-1>0)
    {
    c=a+b;
    a=b;
    b=c;
    i--;
    }
    printf("%d ",c);
    }
    }

    ReplyDelete
  3. int Fibonacc(int C);

    void main()
    {
    for(int i=0; i<45; ++i)
    printf("f(%d) = %d\n",i, Fibonacc(i));
    }


    int Fibonacc(int C){

    if(C<0)
    {
    printf("Input Error\n");
    return -1;
    }else if(C<2)
    {
    return C;
    }

    int P0=0;
    int P1=1;
    int P2=0;
    for(int i=2; i<=C; ++i)
    {
    P0 = P1+P2;
    P2=P1;
    P1=P0;
    }

    return P0;

    }

    ReplyDelete
  4. 제강아 잘했다. 그런데 피보나치 부분을 함수로 안만들어서 99.9점이다. Good Job~!!

    ReplyDelete
  5. 현규도 잘했다~. 장난 아닌데? 더 어려운거 내야 겠다. ㅎㅎ
    그런데 함수에서 결과값을 print하지 말고 return 하도록 해라. 그러면 이제 이 피보나치 함수를 이용하여 원하는 입력에 대한 결과 값을 받아 쓸 수 있거든.
    그리고 전역 변수는 그러니깐 너 소스에서 int a,b,c, 전역 변수는 누군가의 실수에 의해서 값이 쉽게 바뀔수 있기 때문에 웬만하면 전역은 쓰지 않는게 좋다.
    수고 했다~ Good Job!!!

    ReplyDelete
  6. Anonymous4/9/11 19:16

    행님코드 참고해서 피보나치부분 함수로 다시 만들었어요.
    앞으로는 함수로 만드는 습관을 좀 길러야 될거 같아요ㅋㅋ


    #include

    int fibo(int Num);

    void main()
    {
    int Num=0;
    printf("숫자를 입력하세요. -> ");
    scanf("%d", &Num);

    printf("결과값은 %d 입니다.\n",fibo(Num));
    }

    int fibo(int Num)
    {
    int Rst[3]={0,1,1};
    int Temp=0;

    if(Num==0) return 0;
    else{
    for(int i=2;i<Num;i++){
    Temp=Rst[2];
    Rst[2]=Rst[1]+Temp;
    Rst[0]=Rst[1];
    Rst[1]=Temp;
    }
    return Rst[2];
    }
    }

    ReplyDelete
  7. 제강 잘한다~ ^^

    ReplyDelete