java大数例题

来源:互联网 发布:手游藕丝步云履数据 编辑:程序博客网 时间:2024/06/06 17:16

对于一些公式简单,运算比较大的题目时,可能需要用到java大数,下面介绍一下几题简单的java大数题

简单的说一下,java交代码的时候要把主类写成Main,另外要把包名那一行给删掉。

hdu1002 标准java大数a+b

import java.math.BigInteger;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main {    void work() {        Scanner cin = new Scanner(System.in);        int n;        n = cin.nextInt();        BigInteger a, b, c;        int kase = 0;        for(int i = 1; i <= n; i++) {            a = cin.nextBigInteger();            b = cin.nextBigInteger();            c = a.add(b);            kase++;            System.out.println("Case " + kase + ":");            System.out.print(a);            System.out.print(" + ");            System.out.print(b);            System.out.print(" = ");            System.out.println(c);            if(i != n)                 System.out.println("");        }    }    public static void main(String[] args){        Main e = new Main();        e.work();    }}

hdu1250 斐波那契大数版

import java.math.BigInteger;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main {    void work() {        Scanner cin = new Scanner(System.in);        int n;        BigInteger f1, f2, f3, f4, temp;        while(cin.hasNext()) {            f1 = BigInteger.ONE;            f2 = f3 = f4 = temp = f1;            n = cin.nextInt();            if(n <= 4) {                System.out.println(1);                continue;            }            for(int i = 5; i <= n; i++) {                temp = f1.add(f2.add(f3.add(f4)));                f1 = f2;                f2 = f3;                f3 = f4;                f4 = temp;            }            System.out.println(temp);        }    }    public static void main(String[] args){        Main e = new Main();        e.work();    }}

hdu1042 大数阶乘

import java.math.BigInteger;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main {    void work() {        Scanner cin = new Scanner(System.in);        int n;        while(cin.hasNext()) {            n = cin.nextInt();            BigInteger ans = new BigInteger("1");            for(int i = 2; i <= n; i++) {                ans = ans.multiply(BigInteger.valueOf(i));            }            System.out.println(ans);        }    }    public static void main(String[] args){        Main e = new Main();        e.work();    }}

hdu1297 找规律+java大数类似斐波那契

递推式子f(n)=f(n1)+f(n2)+f(n4)

import java.math.BigInteger;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main {    void work() {        Scanner cin = new Scanner(System.in);        BigInteger[] ans = new BigInteger[1111];        ans[1] = BigInteger.valueOf(1);        ans[2] = BigInteger.valueOf(2);        ans[3] = BigInteger.valueOf(4);        ans[4] = BigInteger.valueOf(7);        for(int i = 5; i <= 1000; i++) {            ans[i] = ans[i - 4].add(ans[i - 2].add(ans[i - 1]));        }        int n;        while(cin.hasNext()) {            n = cin.nextInt();            System.out.println(ans[n]);        }    }    public static void main(String[] args){        Main e = new Main();        e.work();    }}

hdu1753 a+b 大数有小数点版,去后导0

import java.math.*;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main {    void work() {        Scanner cin = new Scanner(System.in);        BigDecimal a, b;        while(cin.hasNext()) {            a = cin.nextBigDecimal();            b = cin.nextBigDecimal();            System.out.println(a.add(b).stripTrailingZeros().toPlainString());        }    }    public static void main(String[] args){        Main e = new Main();        e.work();    }}
原创粉丝点击