您的位置:首页 > 编程语言 > Java开发

ACM-Java中大数的应用

2017-05-24 10:22 246 查看
BigInteger:

BigInteger a,b,c; //定义;
a=BigInteger.ZERO; //0;
b=BigInteger.ONE; //1;
c=BigInteger.TEN; //10;
c=BigInteger.valueOf(10); //把long long赋给c;
a=a.abs(); //绝对值; 要有等号;
a=a.add(b); // 加;
a=a.subtract(b); //减;
a=a.multiply(b); //乘;
a=a.divide(b); //除;
a.equals(b); //boolean型的,a==b;
a.max(b); //max;
a.min(b); //min;
a.mod(b); //mod;
a.gcd(b); //a和b的最大公约数;
a.pow(2); //pow; pow()里面是int型;
a.modPow(b, c); //a的b次方,在mod c;
String s=a.toString(); //转化成字符串;
c=BigInteger(s); //把String转化成BigInteger; 比如:BigInteger two=new BigInteger("2");
if(a.compareTo(b)==0){ //比较,0是相等,-1是a<b,1是a>b;

}
if(a.compareTo(b)==-1){

}
if(a.compareTo(b)==1){

}
a.doubleValue(); //转成double;
a.intValue();
a.longValue();

将BigInteger的数从f进制转为t进制:

public class Main{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String a=input.nextLine();
int f=input.nextInt();
int t=input.nextInt();
System.out.println(change(a,f,t));
}
//num 要转换的数 from源数的进制 to要转换成的进制
private static String change(String num,int from, int to){
return new java.math.BigInteger(num, from).toString(to);
}

}

BigDecimal和String: BigDecimal a,b,c;
a=input.nextBigDecimal();
a=BigDecimal.ZERO;
b=BigDecimal.ONE;
c=BigDecimal.TEN;
a=BigDecimal.valueOf(1);
a=a.add(b);
a=a.subtract(b);
a=a.multiply(b);
a=a.divide(b);
a=a.abs();
a.equals(b);
a.max(b);
a.min(b);
a.pow(10);
a.remainder(b); //a%b;
a=a.stripTrailingZeros(); //去除后面的0;

String s=a.toString(); //科学计数法;
String ss=a.toPlainString(); //返回不带指数字段的此 BigDecimal 的字符串表示形式;

char st[]=new char[100];

s.charAt(1);
s.length();
s.equals(ss);
s=s.copyValueOf(st, 1, 2); //把char型的 st[] 数组从1到2的元素复制给s;
int x=s.indexOf('a'); //返回s串中a出现的第一个位置;
st=ss.toCharArray(); //把ss字符串转换成char数组;
ss=ss.toLowerCase(); //把ss中的字符转换成小写;也就是把字母变成小写,其他不变;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm Java