1. 程式人生 > 其它 >PAT乙級-1017 A除以B

PAT乙級-1017 A除以B

本題要求計算 A/B,其中 A 是不超過 1000 位的正整數,B 是 1 位正整數。你需要輸出商數 Q 和餘數 R,使得 A=B×Q+R 成立。

輸入格式:

輸入在一行中依次給出 AB,中間以 1 空格分隔。

輸出格式:

在一行中依次輸出 QR,中間以 1 空格分隔。

輸入樣例:

123456789050987654321 7
結尾無空行

輸出樣例:

17636684150141093474 3
結尾無空行

程式碼:

程式碼參考 https://www.cnblogs.com/wowpH/p/11060779.html

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String ab[] = bf.readLine().split(" ");
        bf.close();

        String a = ab[0];
        int b = Integer.parseInt(ab[1]);
        int len = a.length();

        int n = 0;
        StringBuffer stringBuffer = new StringBuffer();
        for(int i = 0; i < len; i++){
            n = n*10+(a.charAt(i) - '0');
            stringBuffer.append((char)(n / b+'0'));
            n = n % b;
        }
        String result = stringBuffer.toString();
        if(result.charAt(0) == '0' && result.length() != 1){
            System.out.println(result.substring(1)+" "+n);
        }else{
            System.out.println(result + " " + n);
        }

    }
}