A+B Problem(高精度算法)

题目:给出两个正整数a,b。求a,b之和c的值.

样例输入(Input):123 123

样例输出(Output):246

Code:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char al[100],bl[100];
 int a[100]={0},b[100]={0},c[100]={0};//清零
 int lena,lenb,lenc;//记录加数a,加数b,和c三个的长度
 int i,x=0;//x用于进位储数
int main(){
 scanf("%s",al);
 scanf("%s",bl);
 lena=strlen(al);
 lenb=strlen(bl);
 for(i=0;i<=lena-1;i++)
     a[lena-i]=al[i]-48;
 for(i=0;i<=lenb-1;i++)
     b[lenb-i]=bl[i]-48;
 lenc=1;
 while(lenc<=lena||lenc<=lenb)//因为lenc是从lena和lenb之中其中的一个最大值取出的(max(a,b)),所以极限也只有是等于它,再者便是小于
 {
  c[lenc]=a[lenc]+b[lenc]+x;
  x=c[lenc]/10;
  c[lenc]=c[lenc]%10;
  lenc++;
 }
 c[lenc]=x;
 if(c[lenc]==0) lenc--;
 for(i=lenc;i>=1;i--)
     cout<<c[i];
 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值