用 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