大数专题

题目地址: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 stub
		Scanner 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 stub
		Scanner 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]);
		}
	}

}


你可能感兴趣的:(大数专题)