zoukankan      html  css  js  c++  java
  • java 高精度 四则运算

    java的大数处理对于ACM中的大数来说,相当的简单啊;

    整数的运算   BigInteger

    小数的运算   BigDecimal

     导入类:

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

    java 大数相除不能整除时会抛出异常,解决办法,设置精度;参见:java之BigDecimal

     num1 = num1.divide(num2,10,BigDecimal.ROUND_HALF_EVEN); 
        System.out.println(num1);
    

    算阶乘时也可用;

    需要转化一下

    1 int n = cin.nextInt() ;
    2         BigInteger m = BigInteger.valueOf(1) ;
    3         for(int i = 1;i<=n;i++){
    4             m = m.multiply(BigInteger.valueOf(i)) ;//int 整形转化为 BigInteger  进行计算
    5         }
    6         System.out.println(m);

    //输入两个大数进行加法运算  add() 相加

     1 import java.util.Scanner;
     2 import java.math.BigInteger;
     3 public class dashu {
     4     public static void main(String[] args) {
     5         Scanner input = new Scanner(System.in);
     6         BigInteger a,b;
     7             a=input.nextBigInteger();
     8             b=input.nextBigInteger();
     9             System.out.println(a.add(b));
    10         }
    11     }

    //输入两个大数相减  subtract ()  相减

     1 import java.util.*;
     2 import java.math.BigInteger;
     3 public class dashu {
     4     public static void main(String args[]) {
     5         Scanner input = new Scanner(System.in);
     6         BigInteger num1 = input.nextBigInteger();
     7         BigInteger num2 = input.nextBigInteger();
     8         System.out.println(num1.subtract(num2));
     9     }
    10 }
    11         

    //输入两个大数相乘  mulitiply () 相乘

     1 import java.util.* ;
     2 import java.math.BigInteger ;
     3 public class dashu {
     4     public static void main(String[] args) {
     5         Scanner input = new Scanner(System.in) ;
     6         BigInteger m,n;
     7         m=input.nextBigInteger();
     8         n=input.nextBigInteger();
     9             m = m.multiply(n) ;
    10         System.out.println(m);
    11     }
    12 }

    //两个大数相除 divide()  相除   remainder()  余数

     1 import java.util.*;
     2 import java.math.BigInteger;
     3 public class dashu {
     4     public static void main(String args[]) {
     5         Scanner input = new Scanner(System.in);
     6         BigInteger num1 = input.nextBigInteger();
     7         BigInteger num2 = input.nextBigInteger();
     8         System.out.println(num1.divide(num2));//相除
     9         System.out.println(num1.remainder(num2));//余数
    10     }
    11 }
    12         
  • 相关阅读:
    Spring Boot面试杀手锏————自动配置原理
    session在什么时候创建,以及session一致性问题
    IaaS、PaaS、SaaS、DaaS都是什么?现在怎么样了?终于有人讲明白了
    FaaS,未来的后端服务开发之道
    架构师必须了解的30条设计原则
    vuejs2.0使用Sortable.js实现的拖拽功能( 转)
    Spring配置中的"classpath:"与"classpath*:"的区别研究(转)
    Java静态类
    CGLIB(Code Generation Library)详解
    hive--udf函数(开发-4种加载方式)
  • 原文地址:https://www.cnblogs.com/lovychen/p/3601640.html
Copyright © 2011-2022 走看看