2011年10月15日 星期六

C 費氏數列練習 (Fibonancci Recursive & Non_Recursive)

/*********************************************
 Fibonacci :
  fn = fn-1 + fn-2     if n > 1
  fn = n        if n = 0, 1                                      
*********************************************/

//Recursive

#include <stdio.h>
#include <stdlib.h>

int fib_fun(int fib)

    if(( fib == 0) || (fib == 1 ))
        return 1;
    else   
        return fib_fun(fib-1)+ fib_fun(fib-2);
}

int main()
{
   int fib,sum; 
   printf("pleae input a number\t");
   scanf("%d",&fib);
   if(fib < 0)
     printf("Input Wrong\n ");
   else   
     {
        sum = fib_fun(fib);
        printf("Answer is %d",sum);
     }
  system("pause");  
}

//Non_Recursive

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int fib;
   int sum =1;
   int i;
   int a =1,b=1;
   printf("pleae input a number \t");
   scanf("%d",&fib);
   if(fib < 0)
     printf("Input Wrong\n ");
   else   
     {
        if((fib ==0) || (fib ==1))
          sum =1;
        else
        {     
            for(i=2;i<=fib;i++)
            {    
              sum =a+b;
              a = b;
              b = sum;
            }
        }
      printf("Answear =%d \n " , sum);
     }
  system("pause");  
}

沒有留言:

張貼留言