三个通过,三个错误,容许我蒙混过关,日后再来纠正,顺便,Java好用是好用,怎么这么废时间
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/**
1074
@author quchu
@date 2019/10/30
*/
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer radixStr = new StringBuffer(br.readLine()).reverse();
char[] radix = radixStr.toString().toCharArray();//进制数组
StringBuffer num_1 = new StringBuffer(br.readLine()).reverse();
char[] num1 =num_1.toString().toCharArray();//累加数据1
StringBuffer num_2 = new StringBuffer(br.readLine()).reverse();
char[] num2 =num_2.toString().toCharArray();//累加数据2
char[] minchar= (num1.length-num2.length)>0?num2:num1;//获取最小位的内容
int minLen=minchar.length;
char[] maxchar=(num1.length-num2.length)<0?num2:num1;
int maxLen=maxchar.length;
List<Character> result = new ArrayList<>(radix.length);
int nextRadix=0;//进位数据
for (int i = 0; i < minLen; i++) {
int n1=num1[i]-48;
int n2=num2[i]-48;
int radixNum=radix[i]-48;
if(radix[i]=='0'){
radixNum=10;
}
if(n1+n2+nextRadix>=radixNum){
result.add((char)(n1+n2+nextRadix-radixNum+48));
nextRadix=1;
}else{
result.add((char)(n1+n2+nextRadix+48));
nextRadix=0;
}
}
//遍历最大值
for (int i = minLen; i < maxLen; i++) {
int n3=maxchar[i]-48;
int radixNum=radix[i]-48;
if(radix[i]=='0'){
radixNum=10;
}
if(n3+nextRadix>=radixNum){
result.add((char)((n3+nextRadix)-radixNum+48));
nextRadix=1;
}else{
result.add((char)(n3+nextRadix+48));
nextRadix=0;
}
}
int flag=0;
for (int i = result.size()-1; i >=0 ; i--) {
if(result.get(i)=='0'&&flag==0){
continue;
}else{
System.out.print(result.get(i));
flag=1;
}
}
}
}