Java中的BigInteger在ACM中的应用

在ACM中的做题时,经常会遇见一些大数的问题,这是当我们用C或是C++时就会觉得比较麻烦,就想有没有现有的现有的可以直接调用的BigInter,那样就方便很多啦。在java中就有的,所以在这儿我就做一个简要的介绍吧

—:在java中的基本头文件(java中叫包)

import java.io.*

importjava.util.*       我们所用的输入scanner在这个包中

importjava.math.*          我们下面要用到的BigInteger就这这个包中

二:输入与输出

读入 Scanner cin=new Scanner(System.in)

While(cin.hasNext())   //相当于C语言中的!=EOF

n=cin.nextInt();       //输入一个int型整数

n=cin.nextBigInteger();   //输入一个大整数

System.out.print(n);      //输出n但不换行

System.out.println();     //换行

System.out.println(n);    //输出n并换行

System.out.printf(“%d\n”,n);     //类似C语言中的输出

三:定义变量

定义单个变量:

int a,b,c;      //和C++ 中无区别

BigInteger  a;   //定义大数变量a

BigIntegerb=new BigInteger("2");   //定义大数变量 b赋值为 2;

BigDecimaln;     //定义大浮点数类 n;

定于数组:

int a[]= new int[10]   //定义长度为10的数组a

BigInteger  b[] =new BigInteger[100]   //定义长度为100的数组a

四:表示范围

布尔型 boolean 1 true,false false

字节型 byte 8 -128-127 0

字符型 char 16 ‘\u000’-\uffff ‘\u0000’

短整型 short 16 -32768-32767 0

整型 int 32 -2147483648,2147483647 0

长整型 long 64 -9.22E18,9.22E18 0

浮点型 float 32 1.4E-45-3.4028E+38 0.0

双精度型 double 64 4.9E-324,1.7977E+308 0.0

BigInteger任意大的数,原则上只要你的计算机内存足够大,可以有无限位

五:常用的一些操作

A=BigInteger.ONE;   //把0赋给A

B=BigInteger.valueOf(3);    //把3赋给B;

A[i]=BigInteger.valueOf(10);    //把10赋给A[i]

c=a.add(b)        //把a与b相加并赋给c

c=a.subtract(b)   //把a与b相减并赋给c

c=a.multiply(b)   //把a与b相乘并赋给c

c=a.divide(b)     //把a与b相除并赋给c

c=a.mod(b)        // 相当于a%b

a.pow(b)          //相当于a^b

a.compareTo(b):      //根据该数值是小于、等于、或大于a 返回 -1、0 或 1;

a.equals(b):    //判断两数是否相等,也可以用compareTo来代替;

a.min(b),a.max(b):  //取两个数的较小、大者;

注意以上的操作都必须是BigInteger类的。

给以样例POJ  2506

代码:

import java.math.*;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner cin=new Scanner(System.in);

BigInteger a[] = new BigInteger[300];

BigInteger b=new BigInteger("2");

a[0]=BigInteger.valueOf(1);

a[1]=BigInteger.valueOf(1);

a[2]=BigInteger.valueOf(3);

a[3]=BigInteger.valueOf(5);

int n;

for(int i=3;i<=255;i++)

{

a[i]=a[i-1].add(a[i-2].multiply(b));

}

while(cin.hasNext())

{

n=cin.nextInt();

System.out.println(a[n]);

}

}

}

原文:http://blog.csdn.net/u010304217/article/details/37728493

java++biginter_Java中的BigInteger在ACM中的应用相关推荐

  1. acm java题_【转】ACM中java的使用

    ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ...

  2. ACM中java的使用

    ACM中java的使用 转载自http://www.cnblogs.com/XBWer/archive/2012/06/24/2560532.html 这里指的java速成,只限于java语法,包括输 ...

  3. ACM中java的使用 (转)

    ACM中java的使用 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入:格式为:Scanner c ...

  4. ACM中Java使用总结

    Java在ACM中的主要应用是大数类[个人见解].做个小总结,留作模板用. 类名默认为Main. 输入: 声明一个输入对象cin;Scanner cin=new Scanner(System.in); ...

  5. java在acm中的一些应用

    这两天遇到了一些关于大数据处理的题目,发现Java对于这方面的优势很大.最重要的是代码量小了.于是针对这两天对Java的摸索,写一篇日志.记录一下针对ACM来说常用的Java方面的东西. 1.输入 首 ...

  6. ACM中java快速入门

    2019独角兽企业重金招聘Python工程师标准>>> ACM中java快速入门 附: Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特 ...

  7. ACM中java的使用(各种比赛中)

    转载自点击打开链接 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 1. 输入: 格式为:Scanner ci ...

  8. java面试大全(7w字,更新中)

    1.杂题 1.maven依赖冲突的解决方法 依赖冲突的原因 举个例子,A依赖于B与C,B依赖于D的1.0版本,C依赖于D的2.0版本,这就导致加载的时候到底会引入那个版本的jar包的问题 解决方法: ...

  9. java 中 如何sum 乘法_JAVA中解决大数乘法和加法问题

    前言 在日常的算法练习中难免会遇见涉及阶乘的计算的题目,总所周知阶乘的数据会变得非常大,此时int和long型都装不下只能借助于String来表示,所以这里特为大家提供两种解决方案:1.使用Java ...

最新文章

  1. python杀死线程的方法_python杀死一个线程的方法
  2. 跨年赠书福利!推荐你数据科学领域初学、进阶必读6本书
  3. html hover图片效果,CSS第9款:Imagehover.css 纯CSS打造的图片悬停效果
  4. 网易云深度学习第一课第一周编程作业
  5. linux 开机默认启动windows系统时间,Windows和Linux双系统批改默认启动项、超时时间...
  6. Python学习-2.安装IDE
  7. Mybatis-学习笔记(6)Mybatis的事务管理机制
  8. Atitit 数据存储的数据表连接attilax总结
  9. python:epub文件批量转TXT
  10. 古训:能控制早晨的人,方可控制人生(经典)
  11. 二进制文件转化成文本文件
  12. 计算机excel二进制,在Excel中实现二进制、八进制、十进制、十六进制之间的转换函数介绍...
  13. Zynq-PS-SDK(4) 之 GIC 配置
  14. Google Adsense api 推荐介绍 ~!没有网站照样赚钱!
  15. 7-19 评委打分 (15 分)
  16. 腾讯地图经纬度解析出地址
  17. 感叹号的形状像什么_三个感叹号的句子
  18. ArcCatalog、ArcGlobe、ArcMap、ArcReader、ArcScene介绍
  19. 再谈SG函数和SG定理
  20. 手把手教学:使用油猴脚本对CCTV央视网启用HTML5播放器

热门文章

  1. 转载……经典面试题目
  2. git报错Another git process seems to be running in this repository, e.g. an editor opened by ‘git commi
  3. linux ls指令(ls命令)
  4. linux主板插硬盘识别不到,z390 m.2 接口插上sata 硬盘后,机械硬盘不识别;HDD 硬盘不识别;z390 m.2和 SATA 硬盘安装组合;,z390主板sata接口在哪...
  5. 跟我一起做京东金融的项目白条页(四)
  6. 72首经典英文歌曲排行版
  7. ipad能看java吗,你可以在iPad上自动播放HTML5视频吗?
  8. 如何使用Tushare和Echarts来画股票K线图
  9. Photoshop CC 2018取消默认安装到C盘
  10. 雨夜DNF辅助从零开始语音教程