java BigInteger使用
虽然说我不怎么会用java写一些东西,但是java里的biginteger我还是很喜欢的。这个类解决了,我们在其他很多语言中遇到的问题:大数。比如在C++中我们要计算一个大小超过long long的数就必须采取很多的代码来解决。简单一点的课余采取用几个数来存数,复杂的我们就要用到字符串的处理通过,通过字符串我们能够处理任意大的数(理论上,实际由于内存之类的原因还是不行的)。
但是使用字符串的形式实现的方式是十分复杂的。我们就最简单的加法为例说明一下,并展望一下乘法甚至是除法的处理方式。字符串处理大数的本质就是“手工计算”,这里的手工当然不是让你离开电脑去自己算,而是说让电脑按照我们手算的方式进行计算,只是用字符串储存一切结果。比如加法我们使用的方法就是字符串中的每个字符一位一位加,并且自己实现进位功能。下面给一个例子:
如果说加法的复杂程度还可以接受那你还而已考虑一下乘法。。。
好了废话不多说,介绍一下主角:
BIgInteger是java中math包里面的一个类,它可以提供各种各样的大数操作,具体的参考api文档自然是最好的,我这里就只给出一个例子,里面调用的是转换函数,可以简单完成字符串到大数的转换。(个人觉的算是复杂一点的应用了)
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/ package bigfor2013;
import java.math.*;
import java.util.*;
import java.io.*;
/**
*
* @author lenovo
*/
public class Bigfor2013 { /**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner cin=new Scanner(new BufferedInputStream(System.in));
BigInteger a,b;
a=cin.nextBigInteger();
int from ,to;
from =cin.nextInt();
to=cin.nextInt();
String s;
s=cin.next();
BigInteger c=new BigInteger(s,from);
System.out.println(c.toString(to));
}
}
java BigInteger使用的更多相关文章
- 大数运算之 Java BigInteger 的基本用法
大数运算之 Java BigInteger 的基本用法 在程序设计竞赛中会遇到高精度运算的问题,C++没有高精度运算,只能手动模拟人工运算,手动实现高精度,而 java.math 包中的 BigInt ...
- 【经验】 Java BigInteger类以及其在算法题中的应用
[经验] Java BigInteger类以及其在算法题中的应用 标签(空格分隔): 经验 本来在刷九度的数学类型题,有进制转换和大数运算,故而用到了java BigInteger类,使用了之后才发现 ...
- java BigInteger
用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂.用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理.下面是写的一些Java中 ...
- Java BigInteger(大数,ACM比赛专用)
用c或者C++处理大数比较麻烦,于是决心学习一下JAVA中大数运算. 先下载一个eclipse,具体的用法去问度娘吧 JAVA中有两个类BigInteger和BigDecimal分别表示大整数类和大浮 ...
- java BigInteger类的用法
import java.math.BigInteger; Scanner in = new Scanner(System.in); BigInteger x1 = new BigInteger(&qu ...
- 有理数类 Java BigInteger实现
import java.math.BigInteger; public class Rational extends Number implements Comparable { private Bi ...
- java BigInteger源码学习
转载自http://www.hollischuang.com/archives/176 在java中,有很多基本数据类型我们可以直接使用,比如用于表示浮点型的float.double,用于表示字符型的 ...
- 手算平方根和基于 Java BigInteger 的大整数平方根的实现
为了实现任意大数的运算,long用BigInteger替换带哦. 好了废话少数,先说数学原理,也就是手算平方根计算机代码实现!那么什么叫手算平方根了??? 手开方图解 据说前苏联的普通工人都会的(毛熊 ...
- 14-03 java BigInteger类,BigDecimal类,Date类,DateFormat类,Calendar类
BigInteger类 发 package cn.itcast_01; import java.math.BigInteger; /* * BigInteger:可以让超过Integer范围内的数据进 ...
随机推荐
- docker open files的设置
- neutron 网络配置flat模式
使用flat模式,直接使用物理网络的子网,配置如下:
- windows hosts
2015年6月29日 11:10:56 星期一 windows 的 hosts 文件生效机制 以最前边的为准, 重复的硬解析只有第一次出现的地方生效
- Pooled Allocation(池式分配)实例——Keil 内存管理
引言:说到动态申请(Dynamic Allocation)内存的好处,学过C/C++的人可能都有体会.运行时的灵活申请自然要比编码时的猜测好的多.而在内存受限情况下这种灵活性又有特别的好处--能让我们 ...
- 3.kvm的基本管理
1.查看KVM虚拟机配置文件 #KVM虚拟机默认配置文件位置 [root@kvm qemu]# pwd /etc/libvirt/qemu [root@kvm qemu]# ll total 12 # ...
- Effective C++ -----条款05:了解C++默默编写并调用哪些函数
面对“内含reference成员或者含const成员”的class内支持赋值操作,你必须自己定义copy assignment操作符. 如果某个base classes将copy assignment ...
- Spring@Autowired注解与自动装配
1 配置文件的方法 我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss ...
- [Android Pro] Normal Permissions
As of API level 23, the following permissions are classified as PROTECTION_NORMAL: ACCESS_LOCATION_E ...
- Tmux的安装、使用与配置
tmux 安装.使用.配置 因上线需求,故需要使用tumx,方便上线 tmux功能 提供了强大的.易于使用的命令行界面 可横向.纵向分割窗口 窗格可以自由移动和调整大小,或者直接利用四个预设布局之一 ...
- Web前端开发工程师的就业前景
Web前端开发工程师的就业前景 Web前端开发工程师是一个全新的职业,在IT行业真正受到重视的时间不超过5年.因此,大家越来越关心web前端工程师前景怎么样?web前端工程师就业如何?Web前端开发是 ...