פיתרון תרגיל 3 .

#include <stdio.h>
#include <conio.h>
#define MAX 23

long iterative_fib(int n) 
{
   int i;
   long f1=1;   
   long f2=1;   
   long sum=0;  

   if(n<1)      
      return(0);
   if((n==1)||(n==2)) 
      return(1);
   for(i=2; i<n; i++)
   {
      sum=f1+f2; 
      f1=f2;
      f2=sum;
   }
   return(sum);
}

long recursive_fib(int n) 
{
   if(n<1) 
      return(0);
   if((n==1)||(n==2)) 
      return(1);
   return(recursive_fib(n-1)+recursive_fib(n-2)); 
}

void main()
{
   int i, n;

   do 
   {
      clrscr();
      printf("Enter a number (1-%d): ", MAX);
      scanf("%d", &n);
   }
   while((n<1)||(n>MAX));
   for(i=1; i<n; i++)
      printf("%8ld", iterative_fib(i));
   getch();
}
הקודם
הבא