poj 1001 java大數類

來源:互聯網
上載者:User

今天在地大邀請賽中,A題是大數題,java大數類不會用,c++大數模板寫的不熟練,就懶得寫,結果,只得了三等獎。。。

今天惡補下:

import java.math.BigDecimal;import java.util.Scanner;import java.math.BigInteger;public class Math {/** * @param args */private static final int  DEFAULT_DIV_SCALE = 10;public static void main(String[] args) {// TODO Auto-generated method stub/*while(true){Scanner input = new Scanner(System.in);int num = input.nextInt();System.out.println(num); }*///BigInteger x = new BigInteger(44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444111");//BigInteger y = new BigInteger ("-555555555555555555555555555555555555555555");int m = 1233;BigInteger x = new BigInteger("12422333332222222222223443211");BigInteger y = new BigInteger ("12");BigInteger k = new BigInteger("e",16);        System.out.println(k);System.out.println(x.add(y));System.out.println(y.abs());    System.out.println(y.compareTo(x));    BigInteger n = x.divide(y.abs());System.out.println(n);System.out.println(n.multiply(y.abs()));System.out.println(y.gcd(x));System.out.println(x.gcd(y));System.out.println(x.subtract(y));System.out.println(x.pow(m));/*System.out.print("輸入資料:\n");System.out.println("輸入資料:");Scanner  input = new Scanner(System.in);float num = input.nextFloat();System.out.println(num);*/System.out.println("大數求餘:");System.out.println(x.mod(y));BigDecimal a = new BigDecimal("11111111.213211");System.out.println("a="+a);/*BigInteger b = new BigInteger ("11111111.213211");*/BigInteger b = new BigInteger ("11111111");System.out.println("b="+b);BigDecimal c = new BigDecimal("12222.121");System.out.println("c=="+c);System.out.println("a+c="+a.add(c));}}

題目連結:http://poj.org/problem?id=1001

第一次寫java代碼,交了一次沒過,桑心。。。要做Codeforces了,有空補上

poj100題,留圖紀念、、、、、、、、、、、、


記得,poj提交java類名都要換成Main的啊

import java.math.BigInteger;import java.math.BigDecimal;import java.util.Scanner;import java.io.*;  //不知道這些包匯入的對不?public class Exponentiation {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubScanner input = new Scanner(System.in);/*讀入: * 用Scanner 類定義的對象進行控制台讀入,Scanner類在java.util.*包中 * Scanner input = new Scanner(System.in); * int n = input.nextInt(); * BigInteger nn = input.nextBigInteger(); * ...................................... */while (input.hasNext())   //等同於!= EOF{int n;BigDecimal a = input.nextBigDecimal(); //讀入一個BigDecimaln = input.nextInt();a = a.pow(n);  // 返回其值為 (thisn) 的 BigDecimal,準確計算該冪,使其具有無限精度。//pow(int n, MathContext mc)   返回其值為 (thisn) 的 BigDecimal。a = a.stripTrailingZeros();/*public BigDecimal stripTrailingZeros  (strip 脫去剝奪,trailing(拖尾,後面的)) * 返回數值上等於此小數,但表示形式溢出所有尾部0的BigDecimal * 1.22222300000   用過之後為1.222223 類型還是BigDeciaml類型 */String str = a.toPlainString();/* * 注意toPlainString()和toString()的區別 * 對於:BigDecimal s; s = (0.4321^20) * String str = s.toPlainString(); * System.out.println(str); * 輸出:0.0000000514855464107。。。。。01 *  *若String str = s.toString(); *輸出為: 5.14855464107。。。。01E-8 */if (str.startsWith("0.")) //以什麼開始{str = str.substring(1);/*substring是java中截取字串的一個方法 * 有兩種傳參方式 * 一種是:public String substring(int deginindex) * 返回一個新的字串,它是此字串的一個子串,該字串從指定索引處的字元開始直到字串末尾 * 另一種是public String substring(int deginindex,int endindex) * 返回一個新字串,也是它的一個子串。該字串從beginindex處開始 * 直到索引到endindex-1處的字元。因此該字串的長度為endindex-beginindex *  *  * substr * 該方法用於返回一個從指定位置開始的指定長度的子字串 *substr(start,length); */}System.out.println(str);}}}

java提交果然慢,100多ms

很好很好的資源:http://man.ddvip.com/program/java_api_zh/java/math/BigDecimal.html#stripTrailingZeros()

http://www.chineselinuxuniversity.net/articles/50293.shtml

http://wenku.baidu.com/view/9463cec7aa00b52acfc7caa8.html

堅持啊啊啊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.