C++程式中將兩個陣列的元素逐個相加的結果的各位數字儲存到一個新陣列中


在本教程中,我們將編寫一個程式,查詢兩個陣列元素的和並將它們儲存到一個單獨的陣列中。

我們給出了兩個陣列,我們需要將這兩個陣列中對應索引的元素相加。如果和不是一位數,則從數字中提取各位數字並將其儲存在新陣列中。

讓我們看一個例子。

輸入

arr_one = {1, 2, 32, 4, 5}
arr_two = {1, 52, 3}

輸出

2 5 4 3 5 4 5

讓我們看看解決問題的步驟。

  • 用虛擬資料初始化兩個陣列。

  • 我們使用向量來儲存結果,因為我們不知道新陣列的大小。

  • 遍歷這兩個陣列,直到索引小於第一個和第二個陣列的長度。

  • 將陣列中對應索引的元素相加,並將它們儲存到一個新陣列中。

  • 完成上述迭代後。分別遍歷這兩個陣列以獲取剩餘的元素。

  • 列印向量中的元素。

示例

讓我們看看程式碼。

 即時演示

#include <bits/stdc++.h>
using namespace std;
void pushDigits(int num, vector<int> &result) {
   if (num > 0) {
      pushDigits(num / 10, result);
      result.push_back(num % 10);
   }
}
void printVector(vector<int> &result) {
   for (int i : result) {
      cout << i << " ";
   }
   cout << endl;
}
void addTwoArrayElements(vector<int> arr_one, vector<int> arr_two) {
   vector<int> result;
   int arr_one_length = arr_one.size(), arr_two_length = arr_two.size();
   int i = 0;
   while (i < arr_one_length && i < arr_two_length) {
      pushDigits(arr_one[i] + arr_two[i], result);
      i++;
   }
   while (i < arr_one_length) {
      pushDigits(arr_one[i++], result);
   }
   while (i < arr_two_length) {
      pushDigits(arr_two[i++], result);
   }
   printVector(result);
}
int main() {
   vector<int> arr_one = {1, 2, 32, 4, 5};
   vector<int> arr_two = {1, 52, 3};
   addTwoArrayElements(arr_one, arr_two);
   return 0;
}

輸出

如果執行上述程式,則將獲得以下結果。

2 5 4 3 5 4 5

結論

如果您在本教程中有任何疑問,請在評論部分中提出。

更新於: 2021年1月27日

202 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.