关闭

JAVA 大数在acm中的应用(2)

295人阅读 评论(0) 收藏 举报
分类:


对于java大数,前面已经提到过一些基本的使用方法,现在补充前面感觉遗漏掉的东西



对于一个变量的定义与在C语言中一样;

如果下次还需要输入  它 (例如  n)  则需要:

import java.util.*;
import java.math.*;
public class Main {
	public static void main (String[] args){
		Scanner cin = new Scanner(System.in);
		int n;
		while(cin.hasNextInt()) //与C语言中多组数据输入一样
        {
            n=cin.nextInt();//多次输入n值
            ...
            ...
        }
	}
}


对于 高精度的大数:(BigDecimal


其基本用法与BigInteger 一样


关于高精度的常用表示:

去后导0的用地BigDecimal的stripTrailingZeros,然后使用toPlainString防止高精度数表示成科学计数法(意思就是转换成朴素的字符串)string


例如如果ans是经过多个高精度数字运算后的结果,那么它有可能会被自动保存为科学计数法;此时用toPlainString就可以。

在此之前要先去掉多余的0,即用到stripTrailingZeros,其实此步骤可以在转换为字符串之后再对其(ff)逐个进行操作。

string ff=ans.stripTrailingZeros().toPlainString() ;


顺便提一下大数中对String的操作:


定义:

String ff="1234abcd";

ff.函数名();


常用的函数名:

1) int length():获取长度     2)char charAt(int index)   例如 char ch=ff.charAt(2);  则ch=='3';

3) boolean contains(str);  判断是否包含一个子串     3) boolean isEmpty():原理就是判断长度是否为0。

5)String toUpperCsae() 大转小     String toLowerCsae() 小转大 :将字符串转成大写或小写 

6) int compareTo(string); 两个字符串之间的比较



好的,回归正题,下面继续说说java的log 与pow

一般可以用数学包里的来解决

例如 Math.pow(double,double);

        Math.log(double a) 返回(以e为底)的一个double值。


好吧,就这么多吧~~~


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15031次
    • 积分:573
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    最新评论