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

原创 2015年07月07日 21:11:27


对于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值。


好吧,就这么多吧~~~


版权声明:本文为博主原创文章,未经博主允许不得转载。

JAVA 大数在acm中的应用

对于经常用c及c++编程进行acm竞赛的弱菜来说,写一道f大数题,是比较麻烦的,然而这对于用java来写来写,却是小菜一碟, 于是我就在网上找了并整理一下java对于大数方面的应用,虽然这对于jav...
  • stffer
  • stffer
  • 2015年06月05日 23:03
  • 945

Java大数求解ACM(HDU)

Java 大数求解ACM
  • LRita
  • LRita
  • 2016年05月16日 21:29
  • 1176

ACM 大数问题的知识点与算法

本文总结ACM大数问题的概念与常用算法 大数是指计算的数值非常大或者对运算的精度要求非常高,用已知的数据类型无法表示的数值。 1、整型 Short : 16位整数,占两个字节,-2^15——2^15-...
  • LiuJiuXiaoShiTou
  • LiuJiuXiaoShiTou
  • 2016年08月11日 21:20
  • 608

ACM大数的高精度模板一套,来自zju

大数(只能处理正数) //功能挺全的,以后再作说明吧。 #include #include   #define DIGIT       4 #define DEPTH     1000...
  • zck921031
  • zck921031
  • 2012年06月26日 17:42
  • 2683

acm 大数题

hdu 1753  题目链接 大明A+B Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...
  • baidu_35643793
  • baidu_35643793
  • 2016年10月29日 08:36
  • 181

6道题学会JAVA解大数问题

大数阶乘 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入输入一个整...
  • LiuJiuXiaoShiTou
  • LiuJiuXiaoShiTou
  • 2016年08月22日 18:29
  • 820

ACM_大数运算 模板&&讲解&&各大oj题目

c语言版大数相加,大数相减,大数相乘,大数相除,大数阶乘,大数求模,大数幂,已通过各大OJ测试,有讲解有练习,有模板,有测试。。。。。...
  • tt2767
  • tt2767
  • 2015年05月01日 16:27
  • 5163

Hash学习(二) ---- ACM

常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用 位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,...
  • u012965373
  • u012965373
  • 2014年08月29日 20:01
  • 663

“玲珑杯”ACM比赛 Round #5 I -- I am Two【位运算判断2的幂】

水题,判断一个数是否是2的幂,运用位运算,一行代码就可以搞定了。 代码:x&(x-1)==0?“Yes”?“No”。 原理: 这就要考虑一下二进制了,因为2的幂的二进制的最高为1,其余位均为0,而比它...
  • hurmishine
  • hurmishine
  • 2016年11月27日 01:42
  • 361

ACM简单处理大数加法方法

在ACM刷题中,处理大数问题,如大数加法,减法,乘法,
  • qlzx_syzx
  • qlzx_syzx
  • 2014年07月22日 23:20
  • 963
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA 大数在acm中的应用(2)
举报原因:
原因补充:

(最多只允许输入30个字)