Given a integer as a input and replace all the ‘0’ with ‘5’ in the integer.
Examples:

    102 - 152
    1020 - 1525

Use of array to store all digits is not allowed.

Source: Amazon interview Experience | Set 136 (For SDE-T)

We strongly recommend to minimize the browser and try this yourself first.
The idea is simple, we get the last digit using mod operator ‘%’. If the digit is 0, we replace it with 5, otherwise keep it as it is. Then we recur for remaining digits.

[ad type=”banner”]

Following is C implementation of the above idea.

C Program
// C program to replace all ‘0’ with ‘5’ in an input Integer
#include<stdio.h>

// A recursive function to replace all 0s with 5s in an input number
// It doesn't work if input number itself is 0.
int convert0To5Rec(int num)
{
// Base case for recursion termination
if (num == 0)
return 0;

// Extraxt the last digit and change it if needed
int digit = num % 10;
if (digit == 0)
digit = 5;

// Convert remaining digits and append the last digit
return convert0To5Rec(num/10) * 10 + digit;
}

// It handles 0 and calls convert0To5Rec() for other numbers
int convert0To5(int num)
{
if (num == 0)
return 5;
else return convert0To5Rec(num);
}

// Driver program to test above function
int main()
{
int num = 10120;
printf("%d", convert0To5(num));
return 0;
}

Output:

15125
[ad type=”banner”]