题目描述:请设计一个算法完成两个超长正整数的加法。
要求实现函数:
void AddLongInteger(char * pcAddend, char * pcAugend, char * pcAddResult);
输入参数:
char * pcAddend:加数
char * pcAugend:被加数
char * pcAddResult:加法结果
返回值:无
运行时间限制:1 Sec内存限制:128 MByte输入:两个超长正整数的字符串
输出:相加后结果的字符串
样例输入:123456789123456789 123456789123456789样例输出:
246913578246913578
import java.util.Scanner;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str1 = scan.next();
String str2 = scan.next();
String s = add(str1, str2);
System.out.println(s);
}
public static String add(String str1, String str2) {
int len1 = str1.length();
int len2 = str2.length();
int[] a = new int[1000];
int[] b = new int[1000];
for(int i=0;i<str1.length();i++) {
a[i] = str1.charAt(len1-1-i)-'0';
}
for(int i=0;i<str2.length();i++) {
b[i] = str2.charAt(len2-1-i)-'0';
}
int len = len1>len2?len1:len2;
for(int i=0;i<len;i++) {
a[i] = a[i]+b[i];
if(a[i]>=10) {
a[i] = a[i]%10;
a[i+1]++;
}
}
StringBuffer sb = new StringBuffer();
if(a[len]>0) {
sb.append(a[len]);
}
for(int i=len-1;i>=0;i--) {
sb.append(a[i]);
}
return sb.toString();
}
}