|
דף
הבית >> רקורסיות שאלות |
פיתרון תרגיל 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();
}
|
|
הקודם
|
|
הבא
|
|