Skip to content
Related Articles

Related Articles

Add 1 to number represented as array | Recursive Approach
  • Difficulty Level : Medium
  • Last Updated : 06 Jun, 2020

Given an array which represents a number, add 1 to the array. Suppose an array contain elements [1, 2, 3, 4] then the array represents decimal number 1234 and hence adding 1 to this would result 1235. So new array will be [1, 2, 3, 5].

Examples:

Input :  [1, 2, 3, 4]
Output : [1, 2, 3, 5]

Input :  [1, 2, 9, 9]
Output : [1, 3, 0, 0]

Input:  [9, 9, 9, 9]
Output: [1, 0, 0, 0, 0]

Approach :
1. Add 1 to the last element of the array, if it is less than 9.
2. If it is 9, then make it 0 and recurse for the remaining element of the array.

C++




// C++ Program to add 1 to an array
// representing a number
#include <bits/stdc++.h>
using namespace std;
  
// function to add one and print the array
void sum(int arr[], int n)
{
      
 int i = n;
  
 // if array element is less than 9, then
 // simply add 1 to this.
 if(arr[i] < 9)
 {
     arr[i] = arr[i] + 1;
     return;
 }
  
 // if array element is greater than 9,
 // replace it with 0 and decrement i
    arr[i] = 0;
    i--;
  
    // recursive function
    sum(arr, i);
}
  
// driver code
int main()
{
    // number of elements in array
    int n = 4;
  
    // array elements, index of array
    // should be 1 based, hence, 0 is
    // added here at arr[0]
    int arr[] = {0, 1, 9, 3, 9};
  
    // function calling
    sum(arr, n);
      
    // If 1 was appended at head
    // of array then, print it
    if(arr[0] > 0)
        cout << arr[0] << ", ";
  
    // print the array elements 
    // after adding one
    for(int i = 1; i <= n; i++)
    {
            cout << arr[i];
              
            if(i < n)
                cout << ", ";
    }
    return 0;
}


Java




// Java Program to add 1 to an array
// representing a number
import java.io.*; 
    
public class GFG { 
    
    // function to add one and print the array 
    void sum(int[] arr, int n) 
    
        int i = n; 
    
        // if array element is less than 9, then 
        // simply add 1 to this. 
        if (arr[i] < 9) { 
            arr[i] = arr[i] + 1
            return
        
            
        // if array element is greater than 9, 
        // replace it with 0 and decrement i 
        arr[i] = 0
        i--; 
          
        // recursive function 
        sum(arr, i);
    
    
    // driver code 
    static public void main(String[] args) 
    
        GFG obj = new GFG(); 
            
        // number of elements in array 
        int n = 4
    
        // array elements, index of array 
        // should be 1 based, hence, 0 is 
        // added here at arr[0] 
        int arr[] = {0, 1, 9, 3, 9};
    
        obj.sum(arr, n); 
    
        // If 1 was appended at head 
        // of array then, print it 
        if (arr[0] > 0
            System.out.print(arr[0] + ", "); 
  
        int i;
        for (i = 1; i <= n; i++) { 
            System.out.print(arr[i]); 
    
            if (i < n) 
                System.out.print(", "); 
        
  
    
}
  
// This code is contributed by vt_m.


Python 3




# Python 3 Program to add 1 to an
# array representing a number
  
# function to add one and print 
# the array
def sum(arr, n):
  
    i = n
      
    # if array element is less than
    # 9, then simply add 1 to this.
    if(arr[i] < 9):
      
        arr[i] = arr[i] + 1
        return
      
    # if array element is greater
    # than 9, replace it with 0
    # and decrement i
    arr[i] = 0
    i -= 1
      
    # recursive function
    sum(arr, i)
      
      
# driver code
# number of elements in array
n = 4
  
# array elements, index of array
# should be 1 based, hence, 0 is
# added here at arr[0]
arr = [0, 1, 9, 3, 9]
  
# function calling
sum(arr, n)
  
# If 1 was appended at head
# of array then, print it
if(arr[0] > 0):
    print(arr[0], ", ", end="")
      
# print the array elements 
# after adding one
for i in range(1, n+1):
      
    print(arr[i], end="")
    if(i < n):
        print(", ", end="")
  
# This code is contributed by
# Smitha Semwal


C#




// C# Program to add 1 to an array
// representing a number
using System;
  
public class GFG {
      
    // function to add one and print the array
    void sum(int []arr, int n){
          
    int i = n;
  
    // if array element is less than 9, then
    // simply add 1 to this.
    if(arr[i] < 9)
    {
      arr[i] = arr[i] + 1;
      return;
    }
  
    // if array element is greater than 9,
    // replace it with 0 and decrement i
    arr[i] = 0;
    i--;
  
    // recursive function
    sum(arr, i);
}
  
    // driver code
    static public void Main ()
    {
      GFG obj =new GFG();
          
    // number of elements in array
    int n = 4;
  
    // array elements, index of array
    // should be 1 based, hence, 0 is
    // added here at arr[0]
    int []arr = {0, 1, 9, 3, 9};
  
    // function calling
    obj.sum(arr, n);
      
    // If 1 was appended at head
    // of array then, print it
    if(arr[0] > 0)
        Console.Write(arr[0] + ", ");
    int i;
    // print the array elements 
    // after adding one
    for( i = 1; i <= n; i++)
    {
        Console.Write(arr[i]);
              
        if(i < n)
            Console.Write(", ");
    }
  
    }
}



Output :

1, 9, 4, 0

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :