I am required to print the fibonacci series using a recursive function
int fib(int n) where n is the number of elements in the series.I pass this through main.And i am not allowed to use any loops in main,such as
I am supposed to print the elements of the series in the recurssive function itself.And i should print only the elements of the series and nothing else.I have tried a program and it works fine.But is there a much simpler code than this.Also,any tips for improving my coding style is abolutely welcome.This is my codeCode:int b=0; for(c=0;c<n;c++) { b=fib(n); printf("%d",b); }
Thanks.Code:#include<stdio.h> static int r=0; int fib(int n); int main(void) { int n=0; printf("enter the number of elements"); scanf("%d",&n); fib(n); } int fib(int n) { int p=0; if(n<0) { printf("enter a number greater than 0"); return -1; } if(n==1) { if(r==0) { printf("%d\n",0); r++; return 0; } else { return 0; } } else if(n==2) { if(r==1) { printf("%d\n",1); r++; return 1; } else { return 1; } } else if(n%2==1) { if(n>r) { p=fib(n-2)+fib(n-1); printf("%d\n",p); r=n; return p; } else { p=fib(n-2)+fib(n-1); return p; } } else if(n%2==0) { if(n>r) { p=fib(n-1)+fib(n-2); printf("%d\n",p); r=n; return p; } else { p=fib(n-1)+fib(n-2); return p; } } return 0; }



1Likes
LinkBack URL
About LinkBacks





.... that really helped