packagecom.chen.lanqiaobei;importjava.math.*;importjava.util.Scanner;/**
* Created by 一只爱吃萝卜的小兔子 on 2021/11/17 19:58
*/publicclassMain{staticBigInteger a, b, c, mod;//java没有全局变量,如果要用的话就在这里写成 静态变量publicstaticvoidmain(String[] args){Scanner in =newScanner(System.in);//整型 大数
a =newBigInteger("12345678900000000000000000000000000000000");
b =BigInteger.valueOf(987654321);// BigInteger.valueOf(超过int类型的要在末尾加'L',并且不能超过Long类型的范围)//加减乘除
c = a.add(b);System.out.println(" add()加法:"+ c);
c = a.subtract(b);System.out.println("subtract()减法:"+ c);
c = a.multiply(b);System.out.println("multiply()乘法:"+ c);
c = a.divide(b);System.out.println(" divide()除法:"+ c);//取余
c = a.mod(b);System.out.println(" mod()取余:"+ c);//最大公因数
c = a.gcd(b);System.out.println("gcd()最大公因数:"+ c);//min max 求最值
c = a.min(b);System.out.println(" min()较小值:"+ c);
c = a.max(b);System.out.println(" max()较大值:"+ c);//指数pow(int)
c = a.pow(2);System.out.println(c);//指数b后在取余mod// a = BigInteger.valueOf(3);// b = BigInteger.valueOf(2);// mod = BigInteger.valueOf(4);// c = a.modPow(b,mod);// System.out.println(c);//比较大小int res;System.out.println(a);System.out.println(b);
res = a.compareTo(b);System.out.println("compareTo()比较");System.out.println("大于:1 等于:0 小于:-1");System.out.println("a.compareTo(b):"+ res);
res = a.compareTo(a);System.out.println("a.compareTo(a):"+ res);
res = b.compareTo(a);System.out.println("b.compareTo(a):"+ res);//进制转换
a =newBigInteger("1111",2);//将2进制数1111转化10进制System.out.println("2进制数的1111转化为十进制是:"+ a);//类型转化 BigDecimal -> BigIntegerBigDecimal b =newBigDecimal("123.123");System.out.println("BigDecimal:"+ b);System.out.println("BigDecimal-> BigInteger:"+ b.toBigInteger());//输入// String t = in.next();// a = new BigInteger(t);// t = in.next();// b = new BigDecimal(t);// System.out.println("输入的第一个字符串转化为BigInteger:" + a);// System.out.println("输入的第一个字符串转化为BigDecimal:" + b);System.out.println();System.out.println();System.out.println();System.out.println("BigDecimal");BigDecimal h, i, c;//java没有全局变量,如果要用的话就在这里写成 静态变量//整型 大数
h =newBigDecimal("123456789.123456789");
i =BigDecimal.valueOf(123.121);//加减乘除
c = h.add(i);System.out.println(" add()加法:"+ c);
c = h.subtract(i);System.out.println("subtract()减法:"+ c);
c = h.multiply(i);System.out.println("multiply()乘法:"+ c);
c = h.divide(i,2,RoundingMode.UP);//2是精度,RoundingMode.UP是round模式System.out.println(" divide()除法:"+ c);//min max 求最值
c = h.min(i);System.out.println(" min()较小值:"+ c);
c = h.max(i);System.out.println(" max()较大值:"+ c);//指数pow(int)
c = i.pow(2);System.out.println(" 指数:"+ c);//比较大小System.out.println(h);System.out.println(i);
res = h.compareTo(i);System.out.println("compareTo()比较");System.out.println("大于:1 等于:0 小于:-1");System.out.println("h.compareTo(i):"+ res);
res = h.compareTo(h);System.out.println("h.compareTo(h):"+ res);
res = i.compareTo(h);System.out.println("i.compareTo(h):"+ res);}}
importjava.math.BigInteger;importjava.util.Scanner;/**
* Created by 一只爱吃萝卜的小兔子 on 2021/11/21 21:24
*/publicclassMain{privatestaticBigInteger res =BigInteger.valueOf(0);//存储最后结果privatestaticBigInteger t1;//代替i进行循环publicstaticvoidmain(String[] args){Scanner in =newScanner(System.in);int t = in.nextInt();BigInteger n =BigInteger.valueOf(t);for(int i =1; i <= t; i++){
t1 =BigInteger.valueOf(i);
res = res.add(fac1(t1));}System.out.println(res);}privatestaticBigIntegerfac1(BigInteger n){if(n.compareTo(BigInteger.valueOf(0))==-1)//<0 没有意义returnBigInteger.valueOf(-1);if(n.compareTo(BigInteger.valueOf(0))==0)//==0returnBigInteger.valueOf(1);
t1 = n.subtract(BigInteger.valueOf(1));//>0return n.multiply(fac1(t1));}}
java大数阶乘和2
importjava.math.BigInteger;importjava.util.Scanner;/**
* Created by 一只爱吃萝卜的小兔子 on 2021/11/21 21:24
*/publicclassMain{publicstaticvoidmain(String[] args){Scanner in =newScanner(System.in);int t = in.nextInt();BigInteger n =BigInteger.valueOf(t);BigInteger ans =BigInteger.valueOf(0);for(BigInteger i =BigInteger.valueOf(1); i.compareTo(n)!=1; i = i.add(BigInteger.valueOf(1))){
ans=ans.add(fac(i));}System.out.println(ans);}privatestaticBigIntegerfac(BigInteger n){BigInteger a1 =newBigInteger("1");BigInteger a2 =newBigInteger("2");BigInteger res =BigInteger.valueOf(1);if(n.compareTo(a1)==0|| n.compareTo(BigInteger.valueOf(0))==0){returnBigInteger.valueOf(1);}elseif(n.compareTo(BigInteger.valueOf(0))==-1){returnBigInteger.valueOf(-1);}while(n.compareTo(a1)>0){
res = res.multiply(n.multiply(n.subtract(a1)));
n = n.subtract(a2);}return res;}}
java大数package com.chen.lanqiaobei;import java.math.*;import java.util.Scanner;/** * Created by 一只爱吃萝卜的小兔子 on 2021/11/17 19:58 */public class Main { static BigInteger a, b, c, mod;//java没有全局变量,如果要用的话就在这里写成 静态变量 public static void main(Strin