题目
描述
请设计一个算法完成两个超长正整数的加法。
接口说明
/*
请设计一个算法完成两个超长正整数的加法。
输入参数:
String addend:加数
String augend:被加数
返回值:加法结果
*/
public String AddLongInteger(String addend, String augend)
{
/*在这里实现功能*/
return null;
}
输入
输入两个字符串数字
输出
输出相加后的结果,string型
样例输入
99999999999999999999999999999999999999999999999999
1
样例输出
100000000000000000000000000000000000000000000000000
代码
可以用cin
#include <iostream>
#include <cstring>
#define N 10000
using namespace std;
void Longadd(char *s1,char *s2)
{
int len1=strlen(s1),len2=strlen(s2);
int a[N]={0},b[N]={0};
for (int i=0;i<len1;i++)
a[i]=s1[len1-1-i]-'0';
for (int i=0;i<len2;i++)
b[i]=s2[len2-1-i]-'0';
int len=(len1>len2 ? len1:len2);
for (int i=0;i<len;i++)
{
a[i]+=b[i];
if (a[i]>=10)
{
a[i]=a[i]%10;
a[i+1]++;
}
}
if (a[len])
cout<<a[len];
for (int i=len-1;i>=0;i--)
cout<<a[i];
cout<<endl;
}
int main()
{
char m[100],n[100];
gets(m);
gets(n);
Longadd(m,n);
return 0;
}