用 C 語言程式表示兩個陣列表示的兩個數字相加
陣列表示的數字以這樣一種形式儲存:數字的每一位都由陣列的一個元素表示。例如,
Number 234 in array is {2,3,4}.要將此類數字相加,我們首先將最低有效位上的數字相加,如果和大於 10,則傳遞進位。在此之後,我們將繼續處理陣列中下一個連續的數字,執行相同的過程並找到總和。
讓我們舉一個例子來新增兩個數字:
a = {2,9, 6}
b = {6, 3, 8}
Output: 934解釋 - 我們將新增數字的最低有效位,即 6+8 = 14,這將傳遞進位,然後對於相同的 9+3+1 = 13,這將再次傳遞進位到下一個。下一個和將是 2+6+1 = 9。這將使總和 = 934。
演算法
為了找到儲存為陣列的數字的和。我們首先檢查是否有任何數字具有更多位數。如果是,我們將找到較小數字的位數的總和,然後繼續新增較大數字的位數。
此外,我們將檢查一個進位數字,該數字將跟蹤和中可能出現的進位並需要轉發,最初它將為零,並且在每次求和迭代之前也將其設定為零。我們將逐一找到數字的和並將其儲存到陣列中,然後列印它。
示例
#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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP