卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章16552本站已运行3318

将数组表示的数字加1(递归方法)

将数组表示的数字加1(递归方法)

给定一个数组,该数组是由非负数字表示的数字的集合,将数字加1(增加由数字表示的数字)。数字存储方式是最高位数字是数组的第一个元素。

要将数字加1到由数字表示的数字

  • 从数组末尾开始,加法意味着将最后一个数字4舍入为5。

  • 如果最后一个元素是9,则将其变为0并进位=1。

  • 对于下一次迭代,检查进位,如果加到10,则执行与步骤2相同的操作。

  • 在添加进位后,将进位设置为0,以便下一次迭代。

  • 如果向量相加并增加向量大小,则在开头追加1。

假设一个数组包含元素[7, 6, 3, 4],则该数组表示十进制数1234,因此将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]

Explanation 将数组的最后一个元素加1,如果小于9。如果元素为9,则将其变为0,并对数组的剩余元素进行递归。

Example

解释 如果数组的最后一个元素小于9,则将其加1。如果元素为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;
}

卓越飞翔博客
上一篇: Python程序用于测试列表中的所有元素是否最大间隔为K
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏