Replace all ‘0’ with ‘5’ in an input Integer - GeeksforGeeks

23 Jan, 2022
Given an integer as input and replace all the ‘0’ with ‘5’ in the integer. 
Examples: 
Input: 102 
Output: 152
Explanation: All the digits which are '0' is replaced by '5' 

Input: 1020 
Output: 1525
Explanation: All the digits which are '0' is replaced by '5'
Use of array to store all digits is not allowed.
Iterative Approach-1: By observing the test cases it is evident that all the 0 digits are replaced by 5. For Example, for input = 1020, output = 1525. The idea is simple, we assign a variable ‘temp’ to 0, 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 multiply the ‘temp’ with 10 and add the digit got by mod operation. After that, we divide the original number by 10 to get the other digits. In this way, we will have a number in which all the ‘0’s are assigned with ‘5’s. If we reverse this number, we will get the desired answer.
Algorithm:
if the number is 0, directly return 5.else do the steps below.Create a variable temp= 0 to store the reversed number having all ‘0’s assigned to ‘5’s.Find the last digit using mod operator ‘%’. If the digit is ‘0’, then make the last digit as ‘5’.Multiply temp with 10 and add the last digit.Divide the number by 10 to get more digits by mod operation.Then reverse this number using the below approach.https://www.geeksforgeeks.org/write-a-program-to-reverse-digits-of-a-number/return the reversed number.
if the number is 0, directly return 5.
else do the steps below.
Create a variable temp= 0 to store the reversed number having all ‘0’s assigned to ‘5’s.
Find the last digit using mod operator ‘%’. If the digit is ‘0’, then make the last digit as ‘5’.
Multiply temp with 10 and add the last digit.
Divide the number by 10 to get more digits by mod operation.
Then reverse this number using the below approach.
https://www.geeksforgeeks.org/write-a-program-to-reverse-digits-of-a-number/
return the reversed number.
C++
Java
Python3
C#
Javascript
// C++ program to replace all ‘0’// with ‘5’ in an input Integer#include <iostream>using namespace std; // A iterative function to reverse a numberint reverseTheNumber(int temp){    int ans = 0;    while (temp > 0) {        int rem = temp % 10;        ans = ans * 10 + rem;        temp = temp / 10;    }    return ans;} int convert0To5(int num){    // if num is 0 return 5    if (num == 0)        return 5;     // Extract the last digit and    // change it if needed    else {        int temp = 0;         while (num > 0) {            int digit = num % 10;            //if digit is 0, make it 5            if (digit == 0)                digit = 5;             temp = temp * 10 + digit;            num = num / 10;        }        // call the function reverseTheNumber by passing        // temp        return reverseTheNumber(temp);    }} // Driver codeint main(){    int num = 10120;    cout << convert0To5(num);    return 0;} // This code is contributed by Vrashank Rao M.
// Java program for the above approachimport java.io.*; class GFG { // A iterative function to reverse a numberstatic int reverseTheNumber(int temp){    int ans = 0;    while (temp > 0) {        int rem = temp % 10;        ans = ans * 10 + rem;        temp = temp / 10;    }    return ans;} static int convert0To5(int num){    // if num is 0 return 5    if (num == 0)        return 5;     // Extract the last digit and    // change it if needed    else {        int temp = 0;         while (num > 0) {            int digit = num % 10;                       //if digit is 0, make it 5            if (digit == 0)                digit = 5;             temp = temp * 10 + digit;            num = num / 10;        }               // call the function reverseTheNumber by passing        // temp        return reverseTheNumber(temp);    }}     // Driver program    public static void main(String args[])    {        int num = 10120;        System.out.println(convert0To5(num));    }} // This code is contributed by sanjoy_62.
# Python program for the above approach # A iterative function to reverse a numberdef reverseTheNumber(temp):    ans = 0;    while (temp > 0):        rem = temp % 10;        ans = ans * 10 + rem;        temp = temp // 10;         return ans; def convert0To5(num):    # if num is 0 return 5    if (num == 0):        return 5;     # Extract the last digit and    # change it if needed    else:        temp = 0;         while (num > 0):            digit = num % 10;             # if digit is 0, make it 5            if (digit == 0):                digit = 5;             temp = temp * 10 + digit;            num = num // 10;                 # call the function reverseTheNumber by passing        # temp        return reverseTheNumber(temp); # Driver programif __name__ == '__main__':    num = 10120;    print(convert0To5(num)); # This code is contributed by umadevi9616
// C# program for the above approachusing System;public class GFG { // A iterative function to reverse a numberstatic int reverseTheNumber(int temp){    int ans = 0;    while (temp > 0) {        int rem = temp % 10;        ans = ans * 10 + rem;        temp = temp / 10;    }    return ans;} static int convert0To5(int num){    // if num is 0 return 5    if (num == 0)        return 5;     // Extract the last digit and    // change it if needed    else {        int temp = 0;         while (num > 0) {            int digit = num % 10;            //if digit is 0, make it 5            if (digit == 0)                digit = 5;             temp = temp * 10 + digit;            num = num / 10;        }               // call the function reverseTheNumber by passing        // temp        return reverseTheNumber(temp);    }}     // Driver Code    public static void Main (string[] args) {        int num = 10120;        Console.Write(convert0To5(num));     }} // This code is contributed by splevel62.
<script>// javascript program for the above approach     // A iterative function to reverse a number    function reverseTheNumber(temp) {        var ans = 0;        while (temp > 0) {            var rem = temp % 10;            ans = ans * 10 + rem;            temp = parseInt(temp / 10);        }        return ans;    }     function convert0To5(num)    {             // if num is 0 return 5        if (num == 0)            return 5;         // Extract the last digit and        // change it if needed        else {            var temp = 0;             while (num > 0) {                var digit = num % 10;                 // if digit is 0, make it 5                if (digit == 0)                    digit = 5;                 temp = temp * 10 + digit;                num = parseInt(num / 10);            }             // call the function reverseTheNumber by passing            // temp            return reverseTheNumber(temp);        }    }     // Driver program        var num = 10120;        document.write(convert0To5(num)); // This code is contributed by umadevi9616</script>
  
15125
 
Complexity Analysis:
 
Time Complexity: O(2n), where n is number of digits in the number which takes O(n) to make 0s int 5s in the number, an extra O(n) to reverse the number
Space Complexity: O(1), no extra space is required.
 
Iterative Approach-2: By observing the test cases it is evident that all the 0 digits are replaced by 5. For Example, for input = 1020, output = 1525, which can be written as 1020 + 505, which can be further written as 1020 + 5*(10^2) + 5*(10^0). So the solution can be formed in an iterative way where if a ‘0’ digit is encountered find the place value of that digit and multiply it with 5 and find the sum for all 0’s in the number. Add that sum to the input number to find the output number.
 
Algorithm: 
 
Create a variable sum = 0 to store the sum, place = 1 to store the place value of the current digit, and create a copy of the input variableIf the number is zero return 5Iterate the next step while the input variable is greater than 0Extract the last digit (n%10) and if the digit is zero, then update sum = sum + place*5, remove the last digit from the number n = n/10 and update place = place * 10Return the sum.
Create a variable sum = 0 to store the sum, place = 1 to store the place value of the current digit, and create a copy of the input variable
If the number is zero return 5
Iterate the next step while the input variable is greater than 0
Extract the last digit (n%10) and if the digit is zero, then update sum = sum + place*5, remove the last digit from the number n = n/10 and update place = place * 10
Return the sum.
 
C++
Java
Python3
C#
Javascript
#include<bits/stdc++.h>using namespace std; // Returns the number to be added to the// input to replace all zeroes with fiveint calculateAddedValue(int number){         // Amount to be added    int result = 0;     // Unit decimal place    int decimalPlace = 1;         if (number == 0)    {        result += (5 * decimalPlace);    }     while (number > 0)    {        if (number % 10 == 0)        {                         // A number divisible by 10, then            // this is a zero occurrence in            // the input            result += (5 * decimalPlace);         }                 // Move one decimal place        number /= 10;        decimalPlace *= 10;    }    return result;} int replace0with5(int number){    return number += calculateAddedValue(number);} // Driver codeint main(){    cout << replace0with5(1020);} // This code is contributed by avanitrachhadiya2155
public class ReplaceDigits {    static int replace0with5(int number)    {        return number += calculateAddedValue(number);    }     // returns the number to be added to the    // input to replace all zeroes with five    private static int calculateAddedValue(int number)    {         // amount to be added        int result = 0;         // unit decimal place        int decimalPlace = 1;         if (number == 0) {            result += (5 * decimalPlace);        }         while (number > 0) {            if (number % 10 == 0)                // a number divisible by 10, then                // this is a zero occurrence in the input                result += (5 * decimalPlace);             // move one decimal place            number /= 10;            decimalPlace *= 10;        }        return result;    }     public static void main(String[] args)    {        System.out.print(replace0with5(1020));    }}
def replace0with5(number):    number += calculateAddedValue(number)    return number     # returns the number to be added to the# input to replace all zeroes with fivedef calculateAddedValue(number):         # amount to be added    result = 0         # unit decimal place    decimalPlace = 1     if (number == 0):        result += (5 * decimalPlace)             while (number > 0):        if (number % 10 == 0):                         # a number divisible by 10, then            # this is a zero occurrence in the input            result += (5 * decimalPlace)                     # move one decimal place        number //= 10        decimalPlace *= 10         return result     # Driver codeprint(replace0with5(1020))     # This code is contributed by shubhmasingh10
using System; class GFG{     static int replace0with5(int number){    return number += calculateAddedValue(number);} // Returns the number to be added to the// input to replace all zeroes with fivestatic int calculateAddedValue(int number){         // Amount to be added    int result = 0;     // Unit decimal place    int decimalPlace = 1;     if (number == 0)    {        result += (5 * decimalPlace);    }     while (number > 0)    {        if (number % 10 == 0)                     // A number divisible by 10, then            // this is a zero occurrence in the input            result += (5 * decimalPlace);         // Move one decimal place        number /= 10;        decimalPlace *= 10;    }    return result;} // Driver Codestatic public void Main(){    Console.WriteLine(replace0with5(1020));}} // This code is contributed by rag2127
<script> // Returns the number to be added to the// input to replace all zeroes with fivefunction calculateAddedValue(number){    // Amount to be added    let result = 0;    // Unit decimal place    let decimalPlace = 1;         if (number == 0) {        result += (5 * decimalPlace);    }     while (number > 0){        if (number % 10 == 0){            // A number divisible by 10, then            // this is a zero occurrence in            // the input            result += (5 * decimalPlace);        }        // Move one decimal place        number = Math.floor(number/10);        decimalPlace *= 10;    }    return result;} function replace0with5(number){    return number += calculateAddedValue(number);} // Driver codedocument.write(replace0with5(1020)); </script>
Output: 
1525
Complexity Analysis:
Time Complexity: O(k), the loops run only k times, where k is the number of digits of the number.
Space Complexity: O(1), no extra space is required.
Recursive Approach: 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 the remaining digits. The approach remains the same, the basic difference is the loop is replaced by a recursive function.
Algorithm: 
Check a base case when the number is 0 return 5, for all other cases form a recursive function.The function (solve(int n))can be defined as follows, if the number passed is 0 then return 0, else extract the last digit i.e. n = n/10 and remove the last digit. If the last digit is zero the assign 5 to it.Now return the value by calling the recursive function for n, i.e return solve(n)*10 + digit.Print the answer.
Check a base case when the number is 0 return 5, for all other cases form a recursive function.
The function (solve(int n))can be defined as follows, if the number passed is 0 then return 0, else extract the last digit i.e. n = n/10 and remove the last digit. If the last digit is zero the assign 5 to it.
Now return the value by calling the recursive function for n, i.e return solve(n)*10 + digit.
Print the answer.
C++
C
Java
Python3
C#
PHP
Javascript
// C++ program to replace all ‘0’// with ‘5’ in an input Integer#include <bits/stdc++.h>using namespace std; // 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;     // Extract 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 numbersint convert0To5(int num){    if (num == 0)        return 5;    else        return convert0To5Rec(num);} // Driver codeint main(){    int num = 10120;    cout << convert0To5(num);    return 0;} // This code is contributed by Code_Mech.
// 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;     // Extract 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 numbersint convert0To5(int num){    if (num == 0)        return 5;    else        return convert0To5Rec(num);} // Driver program to test above functionint main(){    int num = 10120;    printf("%d", convert0To5(num));    return 0;}
// Java code for Replace all 0 with// 5 in an input Integerclass GFG {     // A recursive function to replace all 0s with 5s in    // an input number. It doesn't work if input number    // itself is 0.    static int convert0To5Rec(int num)    {        // Base case        if (num == 0)            return 0;         // Extract 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    static int convert0To5(int num)    {        if (num == 0)            return 5;        else            return convert0To5Rec(num);    }     // Driver function    public static void main(String[] args)    {        System.out.println(convert0To5(10120));    }} // This code is contributed by Kamal Rawal
# Python program to replace all# 0 with 5 in given integer # A recursive function to replace all 0s# with 5s in an integer# Does'nt work if the given number is 0 itselfdef convert0to5rec(num):     # Base case for recursion termination    if num == 0:        return 0     # Extract the last digit and change it if needed    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 to 5 calls convert0to5rec()# for other numbersdef convert0to5(num):    if num == 0:        return 5    else:        return convert0to5rec(num)  # Driver Programnum = 10120print (convert0to5(num)) # Contributed by Harshit Agrawal
// C# code for Replace all 0// with 5 in an input Integerusing System; class GFG {     // A recursive function to replace    // all 0s with 5s in an input number.    // It doesn't work if input number    // itself is 0.    static int convert0To5Rec(int num)    {        // Base case        if (num == 0)            return 0;         // Extract 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    static int convert0To5(int num)    {        if (num == 0)            return 5;        else            return convert0To5Rec(num);    }     // Driver Code    static public void Main()    {        Console.Write(convert0To5(10120));    }} // This code is contributed by Raj
<?php// PHP program to replace all 0 with 5// in given integer // A recursive function to replace all 0s// with 5s in an integer. Does'nt work if// the given number is 0 itselffunction convert0to5rec($num){     // Base case for recursion termination    if ($num == 0)        return 0;     // Extract the last digit and    // change it if needed    $digit = ($num % 10);     if ($digit == 0)        $digit = 5;     // Convert remaining digits and append    // the last digit    return convert0to5rec((int)($num / 10)) *                                10 + $digit;} // It handles 0 to 5 calls convert0to5rec()// for other numbersfunction convert0to5($num){    if ($num == 0)        return 5;    else        return convert0to5rec($num);} // Driver Code$num = 10120;print(convert0to5($num)); // This code is contributed by mits?>
<script>// javascript code for Replace all 0 with// 5 in an input Integer   // A recursive function to replace all 0s with 5s in    // an input number. It doesn't work if input number    // itself is 0.    function convert0To5Rec(num) {        // Base case        if (num == 0)            return 0;         // Extract the last digit and change it if needed        var digit = num % 10;        if (digit == 0)            digit = 5;         // Convert remaining digits and append the        // last digit        return convert0To5Rec(parseInt(num / 10)) * 10 + digit;    }     // It handles 0 and calls convert0To5Rec() for    // other numbers    function convert0To5(num) {        if (num == 0)            return 5;        else            return convert0To5Rec(num);    }     // Driver function             document.write(convert0To5(10120)); // This code contributed by gauravrajput1</script>
15125
Output:
15125
Complexity Analysis: 
Time Complexity: O(k), the recursive function is called only k times, where k is the number of digits of the number
Space Complexity: O(1), no extra space is required.
This article is contributed by Sai Kiran. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
R_Raj
Mithun Kumar
Code_Mech
carolinemarkoc
andrew1234
SHUBHAMSINGH10
avanitrachhadiya2155
rag2127
rohitsingh07052
GauravRajput1
simmytarika5
vrashankrao
splevel62
sanjoy_62
avtarkumar719
umadevi9616
amartyaghoshgfg
sumitgumber28
simranarora5sos
Amazon
number-digits
Arrays
Mathematical
Amazon
Arrays
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Maximum and minimum of an array using minimum number of comparisons
Introduction to Arrays
Multidimensional Arrays in Java
Linear Search
Linked List vs Array
Program for Fibonacci numbers
Write a program to print all permutations of a given string
C++ Data Types
Set in C++ Standard Template Library (STL)
Coin Change | DP-7