大数专题

来源:互联网 发布:流星网络电视注册码 编辑:程序博客网 时间:2024/05/29 14:39

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1002

思路:求2个大数相加

AC代码:

import java.io.*;import java.util.*;import java.math.BigInteger;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);int t = in.nextInt();for(int i =1; i<=t; i++){BigInteger a = in.nextBigInteger();BigInteger b = in.nextBigInteger();BigInteger c = a.add(b);System.out.println("Case " + i + ":");System.out.println(a + " + " + b + " = " + c);if(i != t)System.out.println("");}}}
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1042

思路:求一个数的阶乘
AC代码:

import java.io.*;import java.util.*;import java.math.BigInteger;public class Main {        public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in = new Scanner(System.in);        while(in.hasNextInt())        {            int n = in.nextInt();            BigInteger sum = BigInteger.ONE;            //BigInteger sum1 = new BigInteger("1");            //这一种写法也可以            for(int i=2; i<=n; i++)            {                sum = sum.multiply(BigInteger.valueOf(i));            }            System.out.println(sum);        }    }}

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1047

思路:求好几个大数的和

AC代码:

import java.io.*;import java.util.*;import java.math.BigInteger;public class Main {        public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner in = new Scanner(System.in);        int n = in.nextInt();        for(int i=1; i<=n; i++)        {        BigInteger sum = BigInteger.ZERO;        while(true)        {        BigInteger b = in.nextBigInteger();        if(b.compareTo(BigInteger.ZERO) == 0)        {        break;        }        sum = sum.add(b);        }        System.out.println(sum);        if(i < n)        System.out.println("");                }    }}
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1316

思路:

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1715

AC代码:

import java.io.*;import java.util.*;import java.math.BigInteger;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);BigInteger a[] = new BigInteger[1010];a[1] = BigInteger.ONE;a[2] = BigInteger.ONE;for(int i=3; i<=1000; i++){a[i] = a[i-1].add(a[i-2]);}int t = in.nextInt();for(int i=1; i<=t; i++){int b = in.nextInt();System.out.println(a[b]);}}}

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1063

AC代码:

import java.util.*;import java.math.BigDecimal;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);int n,i;BigDecimal a,sum;BigDecimal one = new BigDecimal("1");while(in.hasNextBigDecimal()){a = in.nextBigDecimal();n = in.nextInt();sum = one;for(i=1; i<=n; i++){sum = sum.multiply(a);}sum = sum.stripTrailingZeros();//返回数值上等于此小数,但从该表示形式移除所有尾部零的 BigDecimalString str = sum.toPlainString();//返回不带指数字段的此 BigDecimal 的字符串表示形式if(str.startsWith("0."))str = str.substring(1);//从1位置截取子串,并返回System.out.println(str);}}}

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1316

AC代码:

import java.math.BigInteger;import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner cin = new Scanner(System.in);        int i,j;        BigInteger a,b;        BigInteger f[] = new BigInteger[501];        BigInteger zero = new BigInteger("0");        f[1]=new BigInteger("1");        f[2]=new BigInteger("2");        for(i=3;i<=500;i++)            f[i]=f[i-1].add(f[i-2]);        while(cin.hasNextBigInteger()){            a=cin.nextBigInteger();            b=cin.nextBigInteger();            if(a.compareTo(zero)==0 && b.compareTo(zero)==0)break;            for(j=0,i=1;i<=500;i++){                if(a.compareTo(f[i])<=0 && b.compareTo(f[i])>=0)j++;                if(b.compareTo(f[i])<0)break;            }            System.out.println(j);        }    }}

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1753

AC代码:

import java.math.BigDecimal;import java.util.*;public class Main{public static void main(String[] args){BigDecimal a, b, c;Scanner cin = new Scanner(System.in);while(cin.hasNext()){a = cin.nextBigDecimal();b = cin.nextBigDecimal();c = a.add(b);if(c.compareTo(BigDecimal.ZERO) == 0)System.out.println("0");elseSystem.out.println(c.stripTrailingZeros().toPlainString());}}}


0 0
原创粉丝点击