Recursion examples with integers
#include <stdio.h>
int dectobin(int num);
int addDigits(int num);
int revDigits(int num);
int main()
{
int n, num;
int (*fp)(int);
printf("enter your choice & value\n");
printf("1. Dec->binary\n");
printf("2. addDigits\n");
printf("3. Rev digits\n");
scanf("%d %d", &n, &num);
switch(n) {
case 1:
fp=dectobin;
break;
case 2:
fp=addDigits;
break;
case 3:
fp=revDigits;
break;
default:
printf("\ninvalid selection.. exiting");
return 0;
}
printf("\nselection %d, output %d", n, fp(num));
return 0;
}
int dectobin(int num)
{
if (num == 0)
return 0;
else
return (num % 2) + (10*dectobin(num/2));
}
int addDigits(int num)
{
if (num == 0)
return 0;
else
return (num % 10) + addDigits(num/10);
}
int revDigits(int num)
{
static int rev=0;
if (num) {
rev = rev*10;
rev = rev + num%10;
revDigits(num/10);
} else
return rev;
return rev;
}
Comments
Post a Comment