c语言可以写大数,我也要写大数
用java写大数减法,输入任意两个正数,但是当较小的一个数减去较大的一个数时,
会出现负号,我想将负号直接放到数组里去,然后返回打印。
// 大数减法:符号暂时没完成
//通过处理我已经把两个传入的字符串变成两个int型数组a和b了
static int[] desc(int[] a,int[] b){
//将a,b弄成同样长
int len = (a.length>b.length)?a.length:b.length;
a=Arrays.copyOf(a, len);
b=Arrays.copyOf(b, len);
System.out.println(a.length+".."+b.length);
//多创建一个长度,放符号
int[] c=new int[len+1];
//退位的标志位
int flag=0;
for(int i=0;i<len;i++){
c[i]=((a[i]-flag)-b[i]+10)%10;
// System.out.print(c[i]+"...");
flag=(a[i]-flag)-b[i]>=0?0:1;
}
// System.out.println("c[len]="+c[len]);
if(flag==0)return c;
if(flag==1){
c[len]=45;//负号的int值为45
//问题在这里,当我重新调用的时候又会出现创建一个新的数组,无法将我的“-”(负号)添加到我的数组里
return desc(b,a);
}
return c;
}