常规运算
package class1;
import java.math.BigInteger;
import java.util.*;
public class Big {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in) ;
BigInteger a ,b ,c ,d ;
BigInteger ans_add , ans_sub , ans_mul , ans_div ,ans_mod ;
a = cin.nextBigInteger() ;
b = cin.nextBigInteger() ;
ans_add = a.add(b) ;
ans_sub = a.subtract(b) ;
ans_mul = a.multiply(b) ;
ans_div = a.divide(b) ;
ans_mod = a.mod(b) ;
System.out.println("a + b = " +ans_add);
System.out.println("a - b = " +ans_sub);
System.out.println("a * b = " +ans_mul);
System.out.println("a / b = " +ans_div);
System.out.println("a % b = " +ans_mod);
if(a.compareTo(b)==0 ){ // 比较
System.out.println("相等");
}
else {
System.out.println("不相等");
}
}
}
多个数连续相加,遇到0就停止相加,给出结果
package class1;
import java.math.BigInteger;
import java.util.*;
public class Big {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in) ;
BigInteger x = BigInteger.valueOf(0); // 初始化
BigInteger ans = BigInteger.valueOf(0);
BigInteger y = BigInteger.valueOf(0) ;
while(cin.hasNext()) {
x = cin.nextBigInteger() ;
if(x.equals(y)) {
break ;
}
ans = ans.add(x) ;
}
System.out.println(ans);
}
}
计算卡特兰数
import java.math.BigInteger;
import java.util.*;
public class Big2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// h(n)=h(n-1)*(4*n-2)/(n+1);
Scanner cin = new Scanner(System.in) ;
BigInteger dp[] = new BigInteger[110] ;
dp[1] = BigInteger.valueOf(1) ;
for(int i = 2 ; i<= 10 ; i++ ) {
dp[i] = dp[i-1].multiply(BigInteger.valueOf(4*i-2)).divide(BigInteger.valueOf(i+1)) ;
}
for(int i = 1 ; i<=10 ; i++ ) {
System.out.println(" " +dp[i]);
}
}
}