A除以B (20)
基本思想是手算除法的过程,
比如100/2: 等价于1/2, 商为0, 余数为1, 商为0的情况下不能输输出,然后余数和下一位: 即0, 组合为1*10+0=10, 就变成10/2, 商为5余数为0,此时输出商数.
然后0和下一位0组合为0*10+0=0, 0/2余数为0, 此时运算完毕。
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); String A = sc.next();//被除数 int B = sc.nextInt();//除数 StringBuilder sb = new StringBuilder();//存储商的字符串 int R = 0;//余数 int curNum = A.charAt(0) - '0'; if(curNum >= B){//必须要被除数大于除数才能除 sb.append(curNum / B); } for(int i=1; i<A.length(); i++){ R = curNum % B; curNum = R * 10 + A.charAt(i) - '0';//余数和下一位组合 sb.append(curNum / B); } R = curNum % B;//余数 if(A.length() == 1 && A.charAt(0) - '0' < B){//被除数<=9,并且被除数小于除数,则商为0, 余数为被除数本身 System.out.println( 0 + " " + (A.charAt(0) - '0')); }else{ System.out.println(sb.toString() + " "+ R); } } }