將用陣列表示的數字加1(遞迴方法)?


給定一個數組,它是一個用數字陣列表示的非負數集合,將數字加1(增加數字陣列表示的數字)。數字的儲存方式是,最高位數字是陣列的第一個元素。

將數字加1

  • 從陣列末尾開始加,加法意味著將最後一個數字4舍入到5。

  • 如果最後一個元素是9,將其設為0,進位=1。

  • 對於下一次迭代,檢查進位,如果它加到10,則執行與步驟2相同的操作。

  • 加完進位後,將進位設為0,用於下一次迭代。

  • 如果向量相加並增加了向量大小,則在開頭追加1。

假設一個數組包含元素[7, 6, 3, 4],則該陣列表示十進位制數7634,因此將1加到這個數將得到7635。因此新陣列將是[7, 6, 3, 5]。

示例

Input: [7, 6, 9, 9]
Output: [7, 7, 0, 0]
Input: [4, 1, 7, 8, 9]
Output: [4, 1, 7, 9, 0]

說明 將1加到陣列的最後一個元素,如果它小於9。如果元素是9,則將其設為0,並對陣列的其餘元素進行遞迴。

示例

#include <iostream>
using namespace std;
void sum(int arr[], int n) {
   int i = n;
   if(arr[i] < 9) {
      arr[i] = arr[i] + 1;
      return;
   }
   arr[i] = 0;
   i--;
   sum(arr, i);
   if(arr[0] > 0) {
      cout << arr[0] << ", ";
   }
   for(int i = 1; i <= n; i++) {
      cout << arr[i];
      if(i < n) {
         cout << ", ";
      }
   }
}
int main() {
   int n = 4;
   int arr[] = {4, 1, 7, 8, 9};
   sum(arr, n);
   return 0;
}

更新於:2019年8月19日

451 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.