AcWing 792. 高精度减法-java
原题链接
简单
作者:
硬拉tom
,
2020-09-12 19:14:39
,
所有人可见
,
阅读 687
java 代码
import java.util.*;
public class Main{
static int N=100010;
static int[] c=new int[N];//0下标表示个位,这样好进位
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String a=sc.next();
String b=sc.next();
System.out.println(minus(a,b));
}
static String minus(String a,String b){
if(a.length() < b.length() || a.length() == b.length() && a.compareTo(b) < 0){
return "-"+minus(b,a);
}
int k=0,n=a.length(),m=b.length(),t=0;
for(int i=n-1,j=m-1;i>=0;i--){
t=a.charAt(i)-'0'-t;
if(j>=0){
t-=b.charAt(j--)-'0';
}
c[k++]=(t+10)%10;
if(t<0){
t=1;
}else{
t=0;
}
}
while(k>0 && c[k]==0){//去掉前导0
k--;
}
StringBuilder sb=new StringBuilder();
for(int i=k;i>=0;i--){
sb.append((char)(c[i]+'0'));
}
return sb.toString();
}
}
十余行代码解决问题
希望帮到你哦
Java也要这么花里胡哨吗
hh 和y总模板差不多,就输出不太一样