大数问题一(大数相加)

本文介绍了一种简化数组右对齐处理的方法,通过直接处理sum数组,避免了复杂的对齐过程。该方法思路简单,易于理解,适用于数组加法等场景。代码使用C++实现,包括读取两个字符数组,转换为整数相加,处理进位,去除前导零,并输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ee 对sum数组进行处理: 图片1   这样直接简化的数组的右对齐过程,思想简单,容易理解; 代码如下:
#include
#include
#include
#include
using namespace std ;
int main()      {
        char a[21] , b[21] ;
        while(cin >>a >> b)       {
            int sum[21] = {0} ;
            int lena = strlen(a) - 1 ;
            int lenb = strlen(b) - 1 ;
            int t = 20 ;
            for(; lena >= 0 || lenb >= 0 ; lena--,lenb--)
                sum[t--] = a[lena] - '0' + b[lenb] - '0' ;
            for(int k = 20 ; k>= 1; k--)   {        //对sum数组进行处理
                sum[k-1] += sum[k] / 10 ;           //商进到前一位中
                sum[k] = sum[k] % 10 ;              //余数留在原位置
            }
            int start = 0 ;
            while(start <= 20 && !sum[start])        //去除sum数组中多余的“0”
                start++ ;
            while(start<=20)                           //从左到右输出sum数组中的数值
                cout << sum[start++] ;
            cout << endl ;
        }
        return 0 ;
}

转载于:https://www.cnblogs.com/NYNU-ACM/p/4236869.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值