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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM