# Add 1 to number represented as array | Recursive Approach

• Difficulty Level : Medium
• Last Updated : 25 Mar, 2021

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]```

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.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

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 ``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``    ``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)``        ``cout << arr << ``", "``;` `    ``// 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``        ``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``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``    ``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)``        ``Console.Write(arr + ``", "``);``    ``int` `i;``    ``// print the array elements``    ``// after adding one``    ``for``( i = 1; i <= n; i++)``    ``{``        ``Console.Write(arr[i]);``            ` `        ``if``(i < n)``            ``Console.Write(``", "``);``    ``}` `    ``}``}`

## Javascript

 ``

Output :

`1, 9, 4, 0`

My Personal Notes arrow_drop_up