介绍

java中用于操作大叔的类主要有俩种 第一个是BigInteger,代表大整数。第二个是BigDecimal,代表大浮点数。两种类的操作方法类似,所以我们只讲解BigInterger的用法

基本用法

Scanner input = new Scanner(System.in);

BigInteger a = input.nextBigInteger();

BigInteger b = input.nextBigInteger();

1.更改为大数数据类型

String s = "12345678987654321"

BigInteger a = new BigInteger(s);

int a =123456;

BigInteger a = BigInteger.valueOf(a);

String s = "12345678987654321";

BigInteger a =BigInteger.valueOf(s,10);//将字符串转换成10进制的大数

2.大整数的四则运算(都不改变a b的值)

a.add(b)    //求a+b 加法

a.subtract(b)  //求a-b 减法

a.divide(b)   //求a/b 除法

a.multiply(b)  //求a*b 乘法

3.大整数比较大小

a.equals(b);  //如果a b相等 返回true 否则返回false

if(a.equals(a.max(b)))   //如果a等于a和b中的较大者 即a>b 否则a<b

4.常用方法

a.mod(b)  //求余数即a%b

a.gcd(b)   //求最大公约数

a.max(b)  //求最大值

a.min(b)   //求最小值

a.pow(b)  //求a^b的大数

5.求大数的长度

a.toString().length();

例题

1.模板

import java.math.BigInteger;
import java.util.*;
public class Main{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
BigInteger a = input.nextBigInteger();//输入一个大数
BigInteger b = BigInteger.valueOf();//初始化一个为0的大数
BigInteger c = BigInteger.valueOf();//初始化一个为1的大数
BigInteger []shu = new BigInteger[];//初始化一个4040的大数数组
int I = ;
BigInteger d = BigInteger.valueOf(I);//将int转化成BigInt
String s = "";
BigInteger f = new BigInteger(s); //将String转为BigInt
int e = ;
a = a.add(b); //a = a+b
a = a.subtract(b); //a = a-b
a = a.divide(b); //a = a/b
a = a.multiply(b); //a = a*b
a = a.mod(b); //a = a%b
if(a.equals(a.max(b)));// if(a>b)
if(b.equals(a.max(b)));// if(a<b) c = a.pow(e); //a = a^e e必须为int类型
c = a.gcd(b); //a和b的最大公约数 int len = a.toString().length(); //求大数的长度
while(input.hasNext())//一直输入
{
BigInteger k = input.nextBigInteger();
}
}
}

2.大整数阶乘(一个模板)

import java.util.*;
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
BigInteger []f = new BigInteger[5000];
f[0] = f[1] = BigInteger.ONE;
for(int i=2;i<=10000;i++)
{
f[i] = f[i-1].multiply(BigInteger.valueOf(i));
} while(input.hasNext()) {
int m = input.nextInt();
System.out.println(f[m]);
}
}
}

3.Fibonacci数

import java.util.*;
import java.math.BigInteger;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
BigInteger []f = new BigInteger[5010];
f[0] = f[1] = BigInteger.ONE;
for(int i=2;i<=5000;i++)
{
f[i] = f[i-1].add(f[i-2]);
}
while(input.hasNext()) {
int m = input.nextInt();
System.out.println(f[m]);
}
}
}

java 大数详细讲解的更多相关文章

  1. java 发送邮件详细讲解

    一.JavaMail概述:        JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供 ...

  2. java大数运算(讲解)

    在算法竞赛或者面试中我们经常遇到大数问题,例如求一个很大的阶层,大数加法等等. 住在这种情况下我们用常规解法(使用long long或long long int)肯定是不行的, 而我们自己用c/c++ ...

  3. JAVA接口详细讲解

    接口 接口的概念  接口代表的是一个功能的集合,定义规范,所有的方法都是抽像方法,这是一种思想是一种规则,将这个种规则称为接口. 接口的定义 使用关键字 interface 叫做接口 修饰符 inte ...

  4. 第五节:详细讲解Java中的接口与继承

    前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...

  5. 第四节:详细讲解Java中的类和面向对象思想

    前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...

  6. 第二十三节:Java语言基础-详细讲解函数与数组

    函数 函数在Java中称为方法,在其他语言中可能称为函数,函数,方法就是定义在类中具有特定功能的程序.函数,在Java中可称为方法. 函数的格式: 修饰符 返回值类型 函数名(参数类型 参数1, 参数 ...

  7. 第二十二节:Java语言基础-详细讲解位运算符与流程控制语句

    位运算符(二进制位运算) 运算符 运算 例子 << 左移 3 << 2 = 12 --> 3 * 2 * 2 =12 >> 右移 3 >> 1 = ...

  8. 第十节:详细讲解一下Java多线程,随机文件

    前言 大家好,给大家带来第十节:详细讲解一下Java多线程,随机文件的概述,希望你们喜欢 多线程的概念 线程的生命周期 多线程程序的设计 多线程的概念 多线程的概念:程序是静态的,进程是动态的.多进程 ...

  9. 第九节:详细讲解Java中的泛型,多线程,网络编程

    前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...

随机推荐

  1. OpenCV 入门示例之二:播放 AVI 视频

    前言 本文展示一个播放 AVI 视频的程序.( 呵呵是 AVI 视频不是 AV 视频噢! ) 代码示例 // 此头文件包含图像IO函数的声明 #include "highgui.h" ...

  2. 第 3 章 第 1 题 精简冗余 if 语句问题 使用数组实现

    问题分析 输入:用户个人收入 输出:该用户要缴纳的个人所得税 约束:不允许使用过多的 if 语句 解答思路 最简单的方法是根据不同的税率区间,创建多个 if 语句来求解.但如此一来便会有 25 个 i ...

  3. CentOS 安装和配置 Mantis

    Mantis是一个基于PHP技术的轻量级的开源缺陷跟踪系统,以Web操作的形式提供项目管理及缺陷跟踪服务.在功能上.实用性上足以满足中小型项目的管理及跟踪.更重要的是其开源,不需要负担任何费用. 1. ...

  4. spring 监听器简介

    在java web项目中我们通常会有这样的需求:当项目启动时执行一些初始化操作,例如从数据库加载全局配置文件等,通常情况下我们会用javaee规范中的Listener去实现 常用的监听器有spring ...

  5. webstrom编辑react语法报错解决

    问题: 解决办法:1.把 JavaScript 的版本设置为 JSX Harmony. 2.把<script>type类型改为:text/jsx

  6. 九度OJ 1133:学分绩点 (加权平均数)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1333 解决:702 题目描述: 北京大学对本科生的成绩施行平均学分绩点制(GPA).既将学生的实际考分根据不同的学科的不同学分按一定的公式 ...

  7. ETF到底是什么?

    ETF(交易所交易基金)是一种证券产品,它可以跟踪一些相关的资产,不论是股票.债券.商品,还是数字货币. ETF基金会负责跟踪指定的资产.然后放出部分股份,这些股份代表着对资产的拥有权. 交易ETF股 ...

  8. 最新版本号MYSQL官网下载地址可是必需要注冊后才干下载

            因mysql5.0上运行函数不行,决定安装最新版本号的mysql,在网上找了些绿色版的.安装总报1067错误,网上的各种方法都试了,就是不行.浪费时间不说.郁闷死了,最后决定去官网,官 ...

  9. seventBus(封装) 一个巧妙的解决vue同级组件通讯的思路

    如果在你项目中需要多处用到同级组件通讯,而又不想去写繁琐的vuex,可以参考这个小思路.本人在写项目中琢磨出来的,感觉挺好用,分享一下. 1.在utils文件夹下添加BusEvent.js 注释已经很 ...

  10. [NOIP2011提高组day2]-3-观光公交

    3.观光公交 (bus.cpp/c/pas) [问题描述] 风景迷人的小城 Y 市,拥有 n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光 ...