首頁  >  文章  >  後端開發  >  在C程序中,將由兩個陣列表示的兩個數字相加

在C程序中,將由兩個陣列表示的兩個數字相加

WBOY
WBOY轉載
2023-09-13 21:49:021017瀏覽

在C程序中,將由兩個陣列表示的兩個數字相加

陣列表示的數字以這樣的形式儲存:該數字的每個數字都由陣列的一個元素表示。例如,

Number 234 in array is {2,3,4}.

為了增加這些數字,我們首先會在最低位數上相加數字,如果和大於10,則傳遞進位。在此之後,我們將繼續對數組的下一個連續數字執行相同的過程並求和。

讓我們來舉個例子,增加兩個數字-

a = {2,9, 6}
b = {6, 3, 8}
Output: 934

Explanation − 我們將添加數字的最低有效位,即6 8 = 14,這將傳播一個進位,然後對於相同的9 3 1 = 13,這將再次傳播進位到下一個數字。下一個數字的和將是 2 6 1 = 9。這將使得和為 934。

Algorithm

為了找到以陣列形式儲存的數字的和。我們首先檢查是否有任何一個數字具有更多的位數。如果是,則我們將找到較小數字的位數總和,然後再添加較大數字的位數。

此外,我們將檢查一個進位數字,它將追蹤可能在和中出現的進位,並需要轉發,初始值為零,並在每次求和迭代之前將其置零。我們將逐一找到數字的和並將其儲存到數組中,然後列印它。

Example

 Live Demo

#include <iostream>
using namespace std;
int Sum(int a[], int b[], int n, int m){
   int sum[n];
   int i = n - 1, j = m - 1, k = n - 1;
   int c = 0, s = 0;
   while (j >= 0) {
      s = a[i] + b[j] + c;
      sum[k] = (s % 10);
      c = s / 10;
      k--;
      i--;
      j--;
   }
   while (i >= 0) {
      s = a[i] + c;
      sum[k] = (s % 10);
      c = s / 10;
      i--;
      k--;
   }
   for (int i = 0; i <= n-1; i++) {
      cout<<sum[i];
   }
}
int main(){
   int a[] = { 5, 6, 9 };
   int b[] = { 3, 8 };
   int n = sizeof(a) / sizeof(a[0]);
   int m = sizeof(b) / sizeof(b[0]);
   cout<<"The sum is ";
   if (n >= m)
      Sum(a, b, n, m);
   else
      Sum(b, a, m, n);
   return 0;
}

輸出

The sum is 607

以上是在C程序中,將由兩個陣列表示的兩個數字相加的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除