java大数运算(BigInteger,BigDecimal)

本文介绍了Java中处理大数运算的方法,包括BigInteger和BigDecimal类的使用。详细阐述了加减乘除、取余、求最大公约数、阶乘等操作,并列举了BigDecimal的舍入模式,如ROUND_UP、ROUND_DOWN等。此外,还提供了相关AC代码实例,展示了在矩阵乘法和特殊比例问题中的应用。
摘要由CSDN通过智能技术生成

java中大数运算非常方便

但要记住一些函数

java中的数学函数要加前缀(相较与c++):Math.

java多组输入:

Scanner in =new Scanner(System.in);
while(in.hasNext()) {//多组输入
//
}

首先是 头文件:import java.math.BigInteger;

BigInteger a =in.nextBigInteger(); 定义一个大数a,并且输入

1.a.add(b);             a+b

2.a.subtract(b);       a-b

3.a.multiply(b);        a*b

4.a.divide(b);           a/b

5.a.remainder(b);     a%b

6.a.gcd(b);               gad(a,b)

7.a!

8.cc.compareTo(dd);  返回int类型(1为>,0为=,-1为<)

BigInteger m;
    	    m =BigInteger.valueOf(1);//BigInteger.valueOf();为定义一个已知大数.
            int x;
            x=in.nextInt();
    	    for(int j=1;j<=x;j++)
    	    {
    	     m=m.multiply(BigInteger.valueOf(j));	
    	    }
        System.out.println(m);	  

完整代码:

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

public class Largenumber {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
     Scanner in =new Scanner(System.in);
     System.out.println("输入两个大数:");
     BigInteger a =in.nextBigInteger();
     BigInteger b =in.nextBigInteger();
     System.out.println("输入操作\n1.加法\n2.减法\n3.乘法\n4.除法\n5.取余\n6.最大公约数\n7.求阶乘");
     int n=in.nextInt();
     System.out.println("result:");
     if(n==1)
     {
      System.out.println(a.add(b));	 ///a+b
     }
     else if(n==2)
     {
    	 System.out.println(a.subtract(b));	 ///
     }
     else if(n==3)
     {
    	 System.out.println(a.multiply(b));	  	 ///a*b
     }
     else if(n==4)
     {
    	 System.out.println(a.divide(b));	 	 ///a/b
     }
     else if(n==5)
     {
    	 System.out.println(a.remainder(b));     ///a%b
     }
     else if(n==6)
     {
    	 System.out.println(a.gcd(b));	 	   ///gcd(a,b)
     }
     else                                     ///a!
     {
    	 BigInteger m;
    	    m =BigInteger.valueOf(1);//BigInteger.valueOf();为定义一个已知
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值