转自:https://www.cnblogs.com/zufezzt/p/4794271.html
import java.util.*; import java.math.*; public class Main{public static void main(String args[]){Scanner cin = new Scanner(System.in);BigInteger a, b;//以文件EOF结束while (cin.hasNext()){a = cin.nextBigInteger();b = cin.nextBigInteger();System.out.println(a.add(b)); //大整数加法System.out.println(a.subtract(b)); //大整数减法System.out.println(a.multiply(b)); //大整数乘法System.out.println(a.divide(b)); //大整数除法(取整)System.out.println(a.remainder(b)); //大整数取模//大整数的比较if( a.compareTo(b) == 0 ) System.out.println("a == b"); //大整数a==belse if( a.compareTo(b) > 0 ) System.out.println("a > b"); //大整数a>belse if( a.compareTo(b) < 0 ) System.out.println("a < b"); //大整数a<b//大整数绝对值System.out.println(a.abs()); //大整数a的绝对值//大整数的幂int exponent=10;System.out.println(a.pow(exponent)); //大整数a的exponent次幂//返回大整数十进制的字符串表示 System.out.println(a.toString());//返回大整数p进制的字符串表示int p=8;System.out.println(a.toString(p));}} }
转自:https://blog.csdn.net/morejarphone/article/details/51884888
HDU 1002
a+b大数版
1 import java.math.BigInteger; 2 import java.util.Scanner; 3 4 public class Main { 5 void solve () { 6 BigInteger a, b, c; 7 Scanner cin = new Scanner(System.in); 8 int t = cin.nextInt (); 9 for (int i = 1; i <= t; i++) { 10 System.out.println ("Case " + i + ":"); 11 a = cin.nextBigInteger (); 12 b = cin.nextBigInteger (); 13 System.out.println (a + " + " + b + " = " + a.add (b)); 14 if (i != t) System.out.println (); 15 } 16 } 17 public static void main (String[] args) { 18 Main work = new Main(); 19 work.solve (); 20 } 21 }
HDU 1042
阶乘大数版
1 import java.math.BigInteger; 2 import java.util.Scanner; 3 4 public class Main { 5 int maxn = 10005; 6 void solve () { 7 Scanner cin = new Scanner(System.in); 8 int n; 9 while (cin.hasNext()) { 10 n = cin.nextInt (); 11 BigInteger ans = BigInteger.valueOf (1); 12 for (int i = 2; i <= n; i++) { 13 ans = ans.multiply (BigInteger.valueOf (i)); 14 } 15 System.out.println (ans); 16 } 17 } 18 public static void main (String[] args) { 19 Main work = new Main(); 20 work.solve (); 21 } 22 }
HDU 1297
f(n)=f(n−1)+f(n−2)+f(n−4)f(n)=f(n−1)+f(n−2)+f(n−4)
import java.math.*; import java.util.*;public class Main {void solve () {Scanner cin = new Scanner(System.in);BigInteger[] ans = new BigInteger[1001];ans[1] = BigInteger.valueOf (1);ans[2] = BigInteger.valueOf (2);ans[3] = BigInteger.valueOf (4);ans[4] = BigInteger.valueOf (7);for (int i = 5; i <= 1000; i++) {ans[i] = ans[i-1].add (ans[i-2].add (ans[i-4]));}while (cin.hasNext ()) {int n = cin.nextInt ();System.out.println (ans[n]);}}public static void main (String[] args) {Main work = new Main();work.solve ();} }
HDU 1753
高精度小数A+B,要去掉末尾的后导0.
import java.math.*; import java.util.*;public class Main {void solve () {//BigInteger a, b, c;Scanner cin = new Scanner(System.in);BigDecimal a = BigDecimal.valueOf (0);BigDecimal b = BigDecimal.valueOf (0);while (cin.hasNext ()) {a = cin.nextBigDecimal ();b = cin.nextBigDecimal ();System.out.println (a.add (b).stripTrailingZeros().toPlainString());}}public static void main (String[] args) {Main work = new Main();work.solve ();} }