​​​​​​​在C/C++语言中,整型所能表示的范围一般为-231到231(大约21亿),即使long long型,一般也只能表示到-263到263。要想计算更加规模的数,就要用软件来扩展了

数组或字符串来模拟更多规模的数及共运算。现在输入两个整数,请输出它们的和。

输入说明

两行,每行一个整数,每个整数不超过1000位。

输出说明

一行,两个整数的和。

输入样例复

15464315464465465

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1005],b[1005],c[1005];//
	int i,j,la,lb,r=0,x,y,k=0;//r表示进位i,j相当于两个指针,在数组内移动
//k=0表示进行加法运算后的数组指针,指向第一个元素,la表示数组长度,调用strlen函数,需要头文件cstring
	cin>>a>>b;
	la=strlen(a);
	lb=strlen(b);
	for(i=la-1,j=lb-1;i>=0 || j>=0 || r>0;i--,j--)
    {
		if(i>=0) x=a[i]-'0';//当i大于等于0时,i这个指针指向的数组还有元素可以加法运算,并把该元素代表的数值传给x
          else x=0;//此时a数组中没有元素了,进行加法运算时把x当作0和另一个数组元素相加
        if(j>=0) y=b[j]-'0';
          else y=0;
		int sum=x+y+r;//求此时a数组元素与b数组元素代表的数值加上进位和
		r=sum/10;//求进位
		c[k++]=sum%10+'0';//将该位上的数值转换为字符型,并传递给c数组
	}
	for(int s=k-1;s>=0;s--)
    {
		printf("%c",c[s]);
	}
}

482321654151

输出样例

15464797786119616

数据范围提示

数据规模和约定:每个整数不超过1000位

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值