比较两个数大小
import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); BigInteger c = new BigInteger("0"); while(cin.hasNext()){ BigInteger a = cin.nextBigInteger(); BigInteger b = cin.nextBigInteger(); if((a.compareTo(c)==0) && (b.compareTo(c)==0)) break; int ok = a.compareTo(b); if(ok==0) System.out.println("a==b"); else if(ok==-1) System.out.println("a<b"); else System.out.println("a>b"); } } }
求一个数的阶乘
import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()){ int a = cin.nextInt(); BigInteger ans = new BigInteger("1"); for(int i=1;i<=a;i++) { BigInteger tmp = BigInteger.valueOf(i); ans = ans.multiply(tmp); } System.out.println(ans); } } }
求a的b次方
import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()){ BigDecimal a = cin.nextBigDecimal(); BigDecimal ans = new BigDecimal("1.0"); int num = cin.nextInt(); ans = a.pow(num); // for(int i=1;i<=num;i++) // { // ans = ans.multiply(a); // } String str = ans.stripTrailingZeros().toPlainString(); if(str.startsWith("0")) //取掉前导0 str = str.substring(1); System.out.println(str); } } }
斐波那契数列
F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2)
import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); BigInteger []a = new BigInteger[1005]; a[1] = a[2] = new BigInteger("1"); for(int i=3;i<=1001;i++) { a[i] = a[i-1].add(a[i-2]); } int n,T; T = cin.nextInt(); for(int cas = 1;cas<=T;cas++) { n = cin.nextInt(); System.out.println(a[n]); } } }