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

Popular posts from this blog

An array A contains integers that first increase in value and then decrease in value. It is unknown at which point the numbers start to decrease. Write efficient code to copy the numbers in A to another array B so that B is sorted in ascending order.

A is an array sorted in ascending order. B is an array sorted in descending order. Merge A and B into C so that C is in ascending order.