JAVA大数种

JAVA大数类

 

JAVA大数类api

http://man.ddvip.com/program/java_api_zh/java/math/BigInteger.html#method_summary

不仅仅只能查JAVA大数类的API。总结的东西都可以查询。

 

 

大数类基本语法

详细见这:http://www.babytree.com/user/showuser.php?uid=u60610804477&tab=journal&journalid=6811716&view=single

 

 

 HDU4762:cut the cake

 长春赛的题目。     感觉比较坑。     可以直接YY一下。

考虑最左边的一个草莓,因为总会有一个最左边的。    自己考虑两边~~~~~~~~~~~~~~考虑面积感觉做不了的样子。

s*(1/f)^(s-1)

import java.util.*;
import java.math.*;

public class Main
{
	public static void main(String[] args) 
	{
		Scanner input = new Scanner(System.in);
		int T = input.nextInt();
		while(T != 0)
		{
			T--;
			int f = input.nextInt();
			int s = input.nextInt();
			BigInteger s1 = BigInteger.valueOf(s);
			BigInteger f1 = BigInteger.valueOf(f);
			BigInteger gcd = f1.pow(s-1).gcd(s1);
			BigInteger a = s1.divide(gcd);
			BigInteger b = f1.pow(s-1).divide(gcd);  //幂函数pow(int a) a不能为BigInteger类型
			System.out.println(a+"/"+b);
		}
	}

}


 

 

PKU高精度计算题目
113112051220140515031604 189420842305232523892413 31013199

 

 

某些高精度水题。

http://acm.nyist.net/JudgeOnline/problem.php?pid=155

import java.util.*;
import java.math.*;
public class Main
{
	public static void main(String[] args) 
	{
		Scanner input = new Scanner(System.in);
	    double r;
	    while(input.hasNext())
	    {
	    	r = input.nextDouble();
	    	int n = input.nextInt();
	    	BigDecimal r1 = BigDecimal.valueOf(r);
	    	BigDecimal n1 = BigDecimal.valueOf(n);
	    	BigDecimal ans1 = r1.pow(n);
	    	String ans = ans1.stripTrailingZeros().toPlainString();
	    	if(ans.startsWith("0")) //去掉前导0   
            {  
                ans = ans.substring(1);  
            }  
            System.out.println(ans);  
	    }
	}

}