在网上无意间看了一道简单的面试题,题目:计算两个超大整数的和,计算的结果超过int类型的范围
首先,遇到这种情况的话,思路一般为是将数字转换为其他类型,然后进行计算,那么这道题的做法就可以将数字转换为字符串进行下一步的求解。
具体的代码如下:
public class Test {
private static String calculate(String str) {
String data="";//data用来存放最后计算的结果
String[] split = str.split("\\+");//按照+号将字符串分隔
if(split.length!=2){
System.out.println("输入有误");
return "输入有误 ,无返回值";
}
int index1=split[0].length()-1;//存第一个数组里面字符串的长度
int index2=split[1].length()-1;//存第二个数组里面字符串的长度
String str1=split[0];//将字符串拿出来转换为字符数组
char[] charArray1 = str1.toCharArray();
String str2=split[1];
char[] charArray2 = str2.toCharArray();
/**
* 始终让第一个字符串的长度大于等于第二个字符串
*/
if(index1<index2){
int temp=index1;
index1=index2;
index2=temp;
char [] aa=charArray1;
charArray1=charArray2;