PAT(B) 1017 A除以B(Java)

    xiaoxiao2021-04-16  216

    题目链接:1017 A除以B
    分析
    读取输入的A和B后,保存为字符串。模拟除法运算过程。不要用BigInteger,因为会超时。另外字符串经常要扩展(例如:append())的话,不要用String(非常慢),用StringBuilder是上上策。最后要注意,如果结果的第一位是0,并且只有一位,那么输出0,否则输出去掉首位后的结果。 /** * Score 20 * Run Time 80ms * @author 柳婼 https://blog.csdn.net/liuchuo/article/details/56676450#commentBox * @version 2.0 */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] ab = br.readLine().split(" ");// 读取输入的A和B到ab[0]和ab[1] br.close(); int b = Integer.parseInt(ab[1]);// 获取B int temp = 0;// 除法运算的临时变量 StringBuilder sb = new StringBuilder();// 保存结果 // 模拟除法运算过程 for (int i = 0; i < ab[0].length(); i++) { temp = temp * 10 + ab[0].charAt(i) - '0';// 当前步骤的被除数 sb.append((char) (temp / b + '0'));// 当前步骤的商添加到结果的末尾 temp = temp % b;// 当前步骤的余数 } String result = sb.toString(); // 第一位可能为0,为0去掉 if (result.charAt(0) == '0' && result.length() != 1) { System.out.print(result.substring(1) + " " + temp); } else { System.out.print(result + " " + temp); } } }

    最新回复(0)