牛客网PAT乙级真题1007(A除以B)

论坛 期权论坛 脚本     
匿名技术用户   2021-1-3 15:48   14   0

思路一:


/*解题思路:因为A是不超过1000位的数,所以超出了普通的long型的范围,所以采用字符串进行保存,并根据手算的除法进行循环运算*/
import java.util.Scanner;                
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        int b = sc.nextInt();
        sc.close();
        int q=0;int r=0;
        for(int x=0;x<str.length();x++) {
            int ax=Character.getNumericValue(str.charAt(x));    //获取字符串的数值
            q=(ax+r*10)/b;
            r=(ax+r*10)%b;
            if(x>0||q>0) System.out.print(q);
        }
        System.out.println(" "+r);
    }
}

思路二:

import java.math.BigInteger;      //引入java中的大数类
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        BigInteger bi1 = input.nextBigInteger();
        BigInteger bi2 = input.nextBigInteger();
        System.out.println (bi1.divide(bi2)+" "+bi1.remainder(bi2));  
    }
}

学习总结:

1 .大数类:BigInteger

BigInteger 任意大的整数,原则上是,只要你的计算机的内存足够大,可以有无限位的,BigInteger 任意大的实数,可以处理小数精度问题。

valueOf:赋初值

add:+ a.add(b);

subtract:-

multiply:*

divide:/

remainder:this % val

divideAndRemainder:a[0]=this / val; a[1]=this % val

pow:a.pow(b)=a^b

gcd,abs:公约数,绝对值

negate:取负数

signum:符号函数

mod:a.mod(b)=a%b;

shiftLeft:左移,this << n ,this*2^n;

shiftRight:右移,this >> n,this/2^n;

and:等同于c++的&&,且;

or:||,或;

xor:异或,BigInteger xor(BigInteger val),this^val

not:!,非;

bitLength:返回该数的最小二进制补码表示的位的个数,即 *不包括* 符号位 (ceil(log2(this <0 ? -this : this + 1)))。对正数来说,这等价于普通二进制表示的位的个数。

bitCount:返回该数的二进制补码表示中不包扩符号位在内的位的个数。该方法在 BigIntegers 之上实现位向量风格的集合时很有用。

isProbablePrime:如果该 BigInteger 可能是素数,则返回 true ;如果它很明确是一个合数,则返回 false 。 参数 certainty 是对调用者愿意忍受的不确定性的度量:如果该数是素数的概率超过了 1 - 1/2**certainty方法,则该方法返回 true 。执行时间正比于参数确定性的值。

compareTo:根据该数值是小于、等于、或大于 val 返回 -1、0 或 1;

equals:判断两数是否相等,也可以用compareTo来代替;

min,max:取两个数的较小、大者;

intValue,longValue,floatValue,doublue:把该数转换为该类型的数的值。

注意事项:

1.BigInteger属于java.math.BigInteger,因此在每次使用前都要import 这个类。偶开始就忘记import了,于是总提示找不到提示符。

2.当要把计算结果输出时应该使用.toString方法将其转换为10进制的字符串,输出方法:System.out.print(two.toString());

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP