PAT乙级1017 A除以B JAVA答案

阳光穿透心脏的1/2处 2022-02-25 06:53 226阅读 0赞

这道题要注意的是不要用Scanner进行数据的读入,因为Scanner对输入数据进行正则解析,对于1000位正整数的范围来说程序会运行超时,这里使用只是简单地读取字符序列的BufferReader。

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. public class Main{
  5. public static void main(String[] args) throws IOException{
  6. BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
  7. String[] ab = bufferedReader.readLine().split(" ");
  8. bufferedReader.close();
  9. String A=ab[0];
  10. int B=Integer.parseInt(ab[1]);
  11. // 初始化结果和余数
  12. String result="";//结果
  13. String remainder="";//余数
  14. for(int i=0;i<A.length();i++) {
  15. int dividend=Integer.parseInt(remainder+String.valueOf(A.charAt(i)));
  16. result=result+dividend/B;
  17. remainder=String.valueOf(dividend%B);
  18. }
  19. // 如果结果的第一位数是0,就把结果第一位去掉
  20. if(result.charAt(0)=='0'&&result.length()!=1) {
  21. result=result.substring(1, result.length());
  22. }
  23. System.out.println(result+" "+remainder);
  24. }
  25. }

介绍一下BufferReader的用法:
https://blog.csdn.net/linxdcn/article/details/72886231

发表评论

表情:
评论列表 (有 0 条评论,226人围观)

还没有评论,来说两句吧...

相关阅读

    相关 1017 A除以B (20 分)

    本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。 输入格式: 输入在一行

    相关 1017. A除以B (20)

    本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B \ Q + R成立。 输入格式: 输入在1行中依次给出A和B

    相关 PAT乙级1017

    1017 A除以B(20分) 本题要求计算A / B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B×Q + R成立。 输入格