题目:请实现一个加法计数器,要求满足任意大小两个整数相加
解析:答案转自网上大神,找不见链接了。答案是进阶版,对于任意多个整数相加的结果
import java.util.Scanner;
public class twoNumAdd {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个整数:");
String s1 = input.nextLine();
System.out.println("请输入第二个整数:");
String s2 = input.nextLine();
System.out.println(add(s1,s2));
System.out.println(add(s1,s2,"88888888888888888888888888888"));
}
public static String add(String... params){
int maxLeng = 0;
//获取最大长度
for(String s :params){
if(s.length()>maxLeng)
maxLeng=s.length();
}
StringBuffer result = new StringBuffer();
//进位数
int high= 0;
//将每个待加参数每一位相加 进位
for (int i = 0 ;i<maxLeng;i++){
int charInt = 0;
for(String s :params){
//高位不够用0代替
charInt += s.length()-1<i?0: Integer.parseInt(s.charAt(s.length()-1-i)+"");
}
charInt+=high;
//进位
high = charInt/10;
//当前位的值 为charInt 余数
int remainder = charInt%10;
result.append(remainder);
}
//最后一次进位
if (high > 0) {
result.append(new StringBuilder(high+"").reverse());
}
//反转 输出结果
return result.reverse().toString();
}
}