题目描述
请设计一个算法完成两个超长正整数的加法。
接口说明
/*
请设计一个算法完成两个超长正整数的加法。
输入参数:
String addend:加数
String augend:被加数
返回值:加法结果
*/
public String AddLongInteger(String addend, String augend)
{
/在这里实现功能/
return null;
}
本题有多组输入数据,请使用while(cin>>)等方式读取
输入描述:
- 输入两个字符串数字
输出描述:
- 输出相加后的结果,string型
示例1
输入
1 | 99999999999999999999999999999999999999999999999999 |
输出
1 | 100000000000000000000000000000000000000000000000000 |
讲解
这个题目第一次做的时候是在去年做网易的笔试题目的时候,当时用的语言还是c++,但是无从下手,不知道该怎么解决这个问题,昨天刷leetcode每日一题的时候,又重新看到了这个题目,所以很系统的了解一下应该如何去处理这样的题目,因为leetcode只需要写算法,不需要整个写输入输出,所以特地去牛客网上找到相同的题目又重新写了一遍。
算法其实不难,但是我们整体用到的知识点就是如何从尾部相加,我们用两个指针i,j分别指向加数和被加数的尾部,然后一个个相加,并用StringBuilder存储结果,最后将StringBuilder逆序并且转化为String类型。下面提供一个我自己写的代码:
1 | import java.util.*; |