首页 > 后端开发 > C++ > 正文

在C程序中,将由两个数组表示的两个数字相加

WBOY
发布: 2023-09-13 21:49:02
转载
1703人浏览过

在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

为了找到以数组形式存储的数字的和。我们首先检查是否有任何一个数字具有更多的位数。如果是,则我们将找到较小数字的位数之和,然后再添加较大数字的位数。

怪兽AI数字人
怪兽AI数字人

数字人短视频创作,数字人直播,实时驱动数字人

怪兽AI数字人 44
查看详情 怪兽AI数字人

此外,我们将检查一个进位数字,它将跟踪可能在和中出现的进位,并需要转发,初始值为零,并在每次求和迭代之前将其置零。我们将逐个找到数字的和并将其存储到数组中,然后打印它。

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中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号