BigInteger クラスから独自のバージョンの add() メソッドを実装しようとしています。これまでのところ、同じ長さの 2 つの数値を指定すると完全に機能しますが、長さが異なる 2 つの数値を指定するとコンパイルに失敗します (範囲外のインデックス)。この問題を解決する最善の方法は何でしょうか?
それが役立つ場合、加算される 2 つの値が 10 と 1 のときの出力は 20 です。
public BigInt add(BigInt b) {
int[] ans = new int[value.length];
int carry=0;
if(this.lessThan(b))
for(int i=b.value.length-1;i>=0;i--){
int result=this.value[i]+b.value[i]+carry;
carry=result/10;
result%=10;
ans[i]=result;
}
else
for(int i=this.value.length-1;i>=0;i--){
int result=this.value[i]+b.value[i]+carry;
carry=result/10;
result%=10;
ans[i]=result;
}
String ANSsz=convertArrayToString(ans);
BigInt Sum = new BigInt(ANSsz);
return Sum;
}