代码:
public class Baiweihetest {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
//首先确保a,b可以随意输入
System.out.println("输入100长度以内的a,b");
String a=scan.next();
String b=scan.next();
//定义容器放置元素
int []arraysa=new int[a.length()];
int []arraysb=new int[b.length()];
for(int i=0;i<a.length();i++)
{
arraysa[i]=(int)(a.charAt(i)-48);
}
for(int i=0;i<b.length();i++)
{
arraysb[i]=(int)(b.charAt(i)-48);
}
for(int i=0;i<a.length();i++){
System.out.print(arraysa[i]+" ");
}
System.out.println();
for(int i=0;i<b.length();i++){
System.out.print(arraysb[i]+" ");
}
//进行相加运算:
int m=arraysa.length-1;
int n=arraysb.length-1;
//分情况解决bug问题
if(a.length()==b.length()){
while(m>=1&&n>=1){
arraysa[m]=arraysa[m]+arraysb[n];
if(arraysa[m]>=10)
{
arraysa[m]=arraysa[m]%10;
arraysa[m-1]+=1;//前一项加一
}
m--;
n--;
}
//输出
System.out.println();
System.out.print(arraysa[0]+arraysb[0]);
for(int i=1;i<arraysa.length;i++)
{
System.out.print(arraysa[i]);
}
}else{
while(m>=0&&n>=0){
arraysa[m]=arraysa[m]+arraysb[n];
if(arraysa[m]>=10)
{
arraysa[m]=arraysa[m]%10;
arraysa[m-1]+=1;//前一项加一
}
m--;
n--;
}
//输出
System.out.println();
for(int i=0;i<arraysa.length;i++)
{
System.out.print(arraysa[i]);
}
}
}
}
运行结果:
输入100长度以内的a,b
2649823659
182748678
2 6 4 9 8 2 3 6 5 9
1 8 2 7 4 8 6 7 8
2832572337
运行结果:
输入100长度以内的a,b
462386498236
239872386565
4 6 2 3 8 6 4 9 8 2 3 6
2 3 9 8 7 2 3 8 6 5 6 5
702258884801