博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java学习笔记(二)
阅读量:4605 次
发布时间:2019-06-09

本文共 2442 字,大约阅读时间需要 8 分钟。

  再我还没有接触Java时就听说了Java有个BigInteger大数类很好用,很方便,我是比较讨厌慢慢找东西看然后学东西,所以就直接上oj找了一些高精度类的题目做了一下,在做题的过程中寻找这个东西的用法,然后总结总结,大概就做了三题,poj 3982,poj 2506,poj 1405。

  大数类所用的“库”是java.math.*; 原谅我,我把import java.*.*暂且理解为C/C++里的#include <>

  poj 3982:

import java.util.*;import java.math.*;public class Main {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner cin = new Scanner(System.in);        while (cin.hasNext()) {            BigInteger a = cin.nextBigInteger();            BigInteger b = cin.nextBigInteger();            BigInteger c = cin.nextBigInteger();            BigInteger d = new BigInteger("0");            int i;            for (i = 4;i <= 100;i++) {                d = a.add(b.add(c));                a = b;                b = c;                c = d;            }            System.out.println(d);        }    }}

  poj 2506 :

import java.util.*;import java.math.*;public class Main {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        BigInteger d[] = new BigInteger[251];        d[0] = BigInteger.valueOf(1);        d[1] = BigInteger.valueOf(1);        d[2] = BigInteger.valueOf(3);        for (int i = 3;i <= 250;i++)            d[i] = d[i-1].add(d[i-2].multiply(BigInteger.valueOf(2)));        Scanner cin = new Scanner(System.in);        while (cin.hasNext()) {            int u = cin.nextInt();            System.out.println(d[u]);        }    }}

  poj 1405:

import java.util.*;import java.math.*;public class Main {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner cin = new Scanner(System.in);        int n = cin.nextInt();        BigInteger d[] = new BigInteger[19];        d[1] = BigInteger.valueOf(2);        System.out.println(d[1]);        for (int i = 2;i <= n;i++) {            d[i] = BigInteger.valueOf(1).add(d[i-1].multiply(d[i-1].subtract(BigInteger.valueOf(1))));            System.out.println(d[i]);        }    }}

  目前大概知道的操作如下:

  x = new BigInteger("..."); 将字符串转换为BigInteger类型

  BigInteger.valueOf(value); value 整型,将整型转换为BigInteger类型

  BigInteger.add(BigInteger) 加法

  BigInteger.subtract(BigInteger) 减法

  BigInteger.multiply(BigInteger) 乘法

  BigInteger.divide(BigInteger) 除法

  另外输入支持cin.nextBigInteger(BigInteger)操作

转载于:https://www.cnblogs.com/Wiki-ki/archive/2012/08/18/2645174.html

你可能感兴趣的文章
BZOJ1878 [SDOI2009]HH的项链 树状数组 或 莫队
查看>>
BZOJ3675 [Apio2014]序列分割 动态规划 斜率优化
查看>>
Django extend(继承)模板标签
查看>>
2016.10.24 继续学习
查看>>
产品功能对标 - 服务授权管理
查看>>
各地IT薪资待遇讨论
查看>>
splay入门
查看>>
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
CSS-上下文选择器
查看>>
ionic repeat 重复最后一个时要执行某个函数
查看>>
1.初识代码审计-基础
查看>>
APC注入
查看>>
No enclosing instance of type Hello is accessible
查看>>
windows SVN搭建
查看>>
Scrum立会报告+燃尽图(Beta阶段第二周第二次)
查看>>
动态代理
查看>>
WCF 中,出现The remote server returned an unexpected response: (400) Bad Request.
查看>>
缓存概要
查看>>
vue项目中使用百度地图的方法
查看>>