Skip to main content

Adding One

Task: Find the result after adding 1 to given an array of N non negative elements.

Example:
Input:
1
3
9 9 9
Output:
1 0 0 0

Here is the Code:
Program in C++:

  1. #include<iostream> 
  2. using namespace std;
  3. void addingOne(int *a,int n)
  4. {
  5.     int sum,carry=1;
  6.     for(int i=n-1;i>=0;i--)
  7.     {
  8.         sum=a[i]+carry;
  9.         if(sum>9)
  10.         {
  11.             a[i]=sum%10;
  12.             carry=sum/10;
  13.         }
  14.         else
  15.         {
  16.             a[i]=sum;
  17.             carry=0;
  18.             break;
  19.         }        
  20.     }
  21.     if(carry!=0)
  22.     {
  23.         cout<<carry<<" ";
  24.     }
  25.     for(int i=0;i<n;i++)
  26.     {
  27.         cout<<a[i]<<" ";
  28.     }
  29. }
  30. int main()
  31.  {
  32. int t;
  33. cin>>t;
  34. while(t--)
  35. {
  36.     int n;
  37.     cin>>n;
  38.     int a[n];
  39.     for(int i=0;i<n;i++)
  40.     {
  41.         cin>>a[i];
  42.     }
  43.     addingOne(a,n);
  44.     cout<<endl;
  45. }
  46. return 0;
  47. }
  48. /*
  49. // For updated version 
  50. class Solution{
  51. public:
  52.     vector<int> addOne(int a[], int n) {
  53.         // code here
  54.         int sum,carry=1;
  55.         vector<int> b;
  56.         for(int i=n-1;i>=0;i--)
  57.         {
  58.             sum=a[i]+carry;
  59.             a[i]=sum%10;
  60.             carry=sum/10;       
  61.         }
  62.         if(carry!=0)
  63.         {
  64.             cout<<carry<<" ";
  65.         }
  66.         for(int i=0;i<n;i++)
  67.         {
  68.             b.insert(b.begin()+i,a[i]);
  69.         }
  70.         return b;
  71.     }
  72. };
  73. */


Here is the Video: