A除以B (20)

【思路】:https://www.nowcoder.com/profile/181212013/codeBookDetail?submissionId=93247059自己拿个例子手算下就知道了
基本思想是手算除法的过程,
比如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);
        }
           
         
              
    }
}


全部评论

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务