zoukankan      html  css  js  c++  java
  • java BigInteger使用

      虽然说我不怎么会用java写一些东西,但是java里的biginteger我还是很喜欢的。这个类解决了,我们在其他很多语言中遇到的问题:大数。比如在C++中我们要计算一个大小超过long long的数就必须采取很多的代码来解决。简单一点的课余采取用几个数来存数,复杂的我们就要用到字符串的处理通过,通过字符串我们能够处理任意大的数(理论上,实际由于内存之类的原因还是不行的)。

      但是使用字符串的形式实现的方式是十分复杂的。我们就最简单的加法为例说明一下,并展望一下乘法甚至是除法的处理方式。字符串处理大数的本质就是“手工计算”,这里的手工当然不是让你离开电脑去自己算,而是说让电脑按照我们手算的方式进行计算,只是用字符串储存一切结果。比如加法我们使用的方法就是字符串中的每个字符一位一位加,并且自己实现进位功能。下面给一个例子:

    如果说加法的复杂程度还可以接受那你还而已考虑一下乘法。。。

      好了废话不多说,介绍一下主角:

      BIgInteger是java中math包里面的一个类,它可以提供各种各样的大数操作,具体的参考api文档自然是最好的,我这里就只给出一个例子,里面调用的是转换函数,可以简单完成字符串到大数的转换。(个人觉的算是复杂一点的应用了)

     1 /*
     2  * To change this template, choose Tools | Templates
     3  * and open the template in the editor.
     4  */
     5 
     6 package bigfor2013;
     7 import java.math.*;
     8 import java.util.*;
     9 import java.io.*;
    10 /**
    11  *
    12  * @author lenovo
    13  */
    14 public class Bigfor2013 {
    15 
    16     /**
    17      * @param args the command line arguments
    18      */
    19     public static void main(String[] args) {
    20         // TODO code application logic here
    21         Scanner cin=new Scanner(new BufferedInputStream(System.in));
    22         BigInteger a,b;
    23         a=cin.nextBigInteger();
    24         int from ,to;
    25         from =cin.nextInt();
    26         to=cin.nextInt();
    27         String s;
    28         s=cin.next();
    29         BigInteger c=new BigInteger(s,from);
    30         System.out.println(c.toString(to));
    31     }
    32 }

    如果你觉得内容对你有帮助,请点个赞

    知识共享许可协议
    本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
  • 相关阅读:
    快速排序(详解)
    14.linux-platform机制实现驱动层分离(详解)
    13.Linux键盘按键驱动 (详解)
    Linux-hexdump命令调试event驱动—详解(13)
    Android开发final的用法
    Android控件RecyclerView的基本用法
    搜索关键词分析——以个人博客网站为例
    java.net.SocketException: Software caused connection abort: socket write error
    Android layout属性大全
    java中 label 配合 break continue 使用方法
  • 原文地址:https://www.cnblogs.com/MrLJC/p/3474789.html
Copyright © 2011-2022 走看看