Wednesday, 23 April 2014

20. Using recursion, (i) Find the factorial of a number (ii) Find Greatest Common Divisor (GCD) of two numbers (iii) To generate Fibonacci ~equence (iv) Reverse ’n’ characters.



#include<stdio.h> int gc,fibn=1;  char out[10]; main()
{
int n,sg,x,y,cur=1,prev=1; char ch,hc;
clrscr();
printf("enter the number to find its factorial\n"); scanf("%d",&n);
sg=factorial(n);
printf("factorial of a number is %d\n",sg); printf("************************************\n"); printf("\nenter the numbers to find GCD \n");  scanf("%d %d",&x,&y);
if(x<y) sg=gcd(x,y,x); else sg=gcd(x,y,y);
printf("\nGreatest common Divisor is %d\n",sg); printf("************************************\n");
printf("\nenter the number to find fibonocci series must less than 22 greater than 1\n"); scanf("%d",&x);
sg=fib(x,cur,prev,1);
printf("\n %d th fib value is %d\n",x,sg); printf("************************************\n"); printf("\nenter the characters to be reversed\n"); scanf("%s",ch);
n=strlen(ch); reverse(ch,n); getch(); return 0;
}
int factorial(int k) {
 

if(k==1) { return 1;
}
k=k*factorial(k-1); return(k);
}
int gcd(int a,int b,int i) { if((a%i==0) && (b%i==0)) return i;
else
gcd(a,b,--i);
}
int fib(int n,int cur,int prev,int count) { if(count>=n)
{
printf("%d ",fibn); return fibn;
}
printf("%d ",fibn); fibn=cur+prev; prev=cur; cur=fibn;
fib(n,cur,prev,count+1); return fibn;
}
reverse(char cl[],int n)
{
printf("%c",cl[n]); if(n<1) { out[n]=cl[n]; return 0;
}
reverse(cl,n-1);
out[n]=cl[n]; return 0;
}

No comments:

Post a Comment