PAT乙级(Basic Level)真题 1007 A除以B Java

题目描述

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

输入描述:

输入在1行中依次给出A和B,中间以1空格分隔。


 

输出描述:

在1行中依次输出Q和R,中间以1空格分隔。

输入例子:

123456789050987654321 7

输出例子:

17636684150141093474 3

我的代码:

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        BigInteger a=in.nextBigInteger();
        BigInteger b=in.nextBigInteger();
        in.close();
        System.out.print(a.divide(b)+" ");
        System.out.print(a.mod(b));
    }

}

大佬的代码:

       

import java.util.Scanner;

/**
 * Created by lang on 2016/1/18.
 */
public class Main {
    int R = 0;
    public static void  main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String A = sc.next();
        int B = sc.nextInt();
        bigDiv(A, B);
    }
    static void bigDiv(String A,int B){
        StringBuffer Q = new StringBuffer();
 
        char[] cA = A.toCharArray();
        int r = 0;
        int a = 0;
        for (int i = 0; i < cA.length; i++) {
            a = r * 10 + Integer.parseInt(String.valueOf(cA[i]));
            Q.append(a/B);
            r = a % B;
        }
        while (Q.charAt(0)=='0')Q.delete(0,1);
        System.out.println(Q.toString()+" "+r);
    }
 
}

另一位:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        try {

            String a = in.next();

            int b = in.nextInt();

            int s = 0;

            for (int i = 0; i < a.length(); i++) {

                int n = a.charAt(i) - '0';

                s = s + n;

                if (s >= b) {

                    System.out.print(s / b);

                else {

                    if (i != 0) {

                        System.out.print(0);

                    }

                }

                s = s % b * 10;

            }

            System.out.println(" " + s / 10);

        finally {

            in.close();

        }

    }

}

猜你喜欢

转载自blog.csdn.net/weixin_41631266/article/details/81812528
今日推荐