题目描述:
请设计一个算法完成两个超长正整数的加法。
接口说明:
/*请设计一个算法完成两个超长正整数的加法。
输入参数:
String addend:加数
String augend:被加数
返回值:加法结果
*/
public String AddLongInteger(String addend, String augend)
{
/*在这里实现功能*/
return null;
}
知识点: 字符串
输入:
字符串数字1
字符串数字2
输出:
输出相加后的结果,string型
样例输入:
99999999999999999999999999999999999999999999999999
1
样例输出:
10000000000000000000000000000000000000000000000000
代码:
#include <iostream>
#include <string>
#define MAX 100
using namespace std;
int main()
{
string s1, s2;
int n1[MAX] = { 0 }, n2[MAX] = {0};
getline(cin, s1);
getline(cin, s2);
int i, len1 = s1.size(), len2 = s2.size(), len = (len1 > len2) ? len1 : len2;
for (i = 0; i < len1; i++)
n1[i] = s1[len1 - i - 1] - '0';
for (i = 0; i < len2; i++)
n2[i] = s2[len2 - i - 1] - '0';
int flag = 0,*sum=(int*)malloc(len*sizeof(int));
for (i = 0; i < len; i++)
{
sum[i] = (n1[i] + n2[i] + flag) % 10;
flag = (n1[i] + n2[i] + flag) / 10;
}
if (flag)
cout << flag;
for (i = len - 1; i >= 0; i--)
cout << sum[i];
cout << endl;
return 0;
}
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
100(100) | 16ms | 2056KB | 7 | 2 |