一定得记住!ACM遇大数就好办了!!!
注意不可同时运行,每次只能运行一个类型
package aad;///建根文件的时候选择了这一项就要写,没选择可以不用写
import java.io.*;
import java.math.BigInteger;
import java.util.*; public class main///class的名字 public也是在建立main class的时候选择了就要写,没选可删掉
{
public static void main(String args[])
{
//1 比较两个数的大小
Scanner cin = new Scanner(System.in);
while(cin.hasNext()) ///一直到结束
{
BigInteger a = cin.nextBigInteger();
BigInteger b = cin.nextBigInteger();
if(a.equals(BigInteger.ZERO) && b.equals(BigInteger.ZERO))
break;
int flag = a.compareTo(b);
if(flag == -1)
System.out.println("a<b");
else if(flag == 0)
System.out.println("a==b");
else
System.out.println("a>b");
} //2 斐波那契数列
BigInteger a[] = new BigInteger[11];
a[0] = new BigInteger("1"); ///注意赋值的时候
a[1] = new BigInteger("1");
for(int i = 2;i < 10;i++)
{
a[i] = a[i-1].add(a[i-2]);
}
System.out.println(a[9]); ///3 大数加法
Scanner in = new Scanner(System.in);
int n = in.nextInt();///n组数字相加
for(int i = 1; i <= n; ++i)
{
BigInteger a = in.nextBigInteger();
BigInteger b = in.nextBigInteger();
BigInteger ans = a.add(b);
System.out.println("Case " + i + ":");
System.out.println(a + " + " + b + " = " +ans);
} ///4 高精度幂
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
BigDecimal ans = cin.nextBigDecimal();
int n = cin.nextInt();
String res = ans.pow(n).stripTrailingZeros().toPlainString(); //整数去掉小数点和后面的0
if(res.startsWith("0")) //去掉前导0
{
res = res.substring(1);
}
System.out.println(res);
} ///5 大数阶乘
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
BigInteger ans = BigInteger.ONE;
for(int i = 1; i <= n; ++i)
ans = ans.multiply(BigInteger.valueOf(i));
System.out.println(ans);
}
}
JAVA
参考:http://blog.csdn.net/y990041769/article/details/41074777
声明为 BigInteger 的 java.math 中的字段
static BigInteger BigInteger. ONE
BigInteger 的常量 1。
static BigInteger BigInteger. TEN
BigInteger 的常量 10。
static BigInteger BigInteger. ZERO
BigInteger 的常量 0。
返回 BigInteger 的 java.math 中的方法
BigInteger BigInteger. abs ()
返回其值是此 BigInteger 的绝对值的 BigInteger。
BigInteger BigInteger. add (BigInteger val)
返回其值为 (this + val) 的 BigInteger。
BigInteger BigInteger. and (BigInteger val)
返回其值为 (this & val) 的 BigInteger。
BigInteger BigInteger. andNot (BigInteger val)
返回其值为 (this & ~val) 的 BigInteger。
BigInteger BigInteger. clearBit (int n)
返回其值与清除了指定位的此 BigInteger 等效的 BigInteger。
BigInteger BigInteger. divide (BigInteger val)
返回其值为 (this / val) 的 BigInteger。
BigInteger [] BigInteger. divideAndRemainder (BigInteger val)
返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。
BigInteger BigInteger. flipBit (int n)
返回其值与对此 BigInteger 进行指定位翻转后的值等效的 BigInteger。
BigInteger BigInteger. gcd (BigInteger val)
返回一个 BigInteger,其值是 abs(this) 和 abs(val) 的最大公约数。
BigInteger BigInteger. max (BigInteger val)
返回此 BigInteger 和 val 的最大值。
BigInteger BigInteger. min (BigInteger val)
返回此 BigInteger 和 val 的最小值。
BigInteger BigInteger. mod (BigInteger m)
返回其值为 (this mod m ) 的 BigInteger。
BigInteger BigInteger. modInverse (BigInteger m)
返回其值为 (this-1 mod m) 的 BigInteger。
BigInteger BigInteger. modPow (BigInteger exponent, BigInteger m)
返回其值为 (thisexponent mod m) 的 BigInteger。
BigInteger BigInteger. multiply (BigInteger val)
返回其值为 (this * val) 的 BigInteger。
BigInteger BigInteger. negate ()
返回其值是 (-this) 的 BigInteger。
BigInteger BigInteger. nextProbablePrime ()
返回大于此 BigInteger 的可能为素数的第一个整数。
BigInteger BigInteger. not ()
返回其值为 (~this) 的 BigInteger。
BigInteger BigInteger. or (BigInteger val)
返回其值为 (this | val) 的 BigInteger。
BigInteger BigInteger. pow (int exponent)
返回其值为 (thisexponent ) 的 BigInteger。
static BigInteger BigInteger. probablePrime (int bitLength, Random rnd)
返回有可能是素数的、具有指定长度的正 BigInteger。
BigInteger BigInteger. remainder (BigInteger val)
返回其值为 (this % val) 的 BigInteger。
BigInteger BigInteger. setBit (int n)
返回其值与设置了指定位的此 BigInteger 等效的 BigInteger。
BigInteger BigInteger. shiftLeft (int n)
返回其值为 (this << n) 的 BigInteger。
BigInteger BigInteger. shiftRight (int n)
返回其值为 (this >> n) 的 BigInteger。
BigInteger BigInteger. subtract (BigInteger val)
返回其值为 (this - val) 的 BigInteger。
BigInteger BigDecimal. toBigInteger ()
将此 BigDecimal 转换为 BigInteger 。
BigInteger BigDecimal. toBigIntegerExact ()
将此 BigDecimal 转换为 BigInteger ,以检查丢失的信息。
BigInteger BigDecimal. unscaledValue ()
返回其值为此 BigDecimal 的非标度值 的 BigInteger 。
static BigInteger BigInteger. valueOf (long val)
返回其值等于指定 long 的值的 BigInteger。
BigInteger BigInteger. xor (BigInteger val)
返回其值为 (this ^ val) 的 BigInteger。
参数类型为 BigInteger 的 java.math 中的方法
BigInteger BigInteger. add (BigInteger val)
返回其值为 (this + val) 的 BigInteger。
BigInteger BigInteger. and (BigInteger val)
返回其值为 (this & val) 的 BigInteger。
BigInteger BigInteger. andNot (BigInteger val)
返回其值为 (this & ~val) 的 BigInteger。
int BigInteger. compareTo (BigInteger val)
将此 BigInteger 与指定的 BigInteger 进行比较。
BigInteger BigInteger. divide (BigInteger val)
返回其值为 (this / val) 的 BigInteger。
BigInteger [] BigInteger. divideAndRemainder (BigInteger val)
返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。
BigInteger BigInteger. gcd (BigInteger val)
返回一个 BigInteger,其值是 abs(this) 和 abs(val) 的最大公约数。
BigInteger BigInteger. max (BigInteger val)
返回此 BigInteger 和 val 的最大值。
BigInteger BigInteger. min (BigInteger val)
返回此 BigInteger 和 val 的最小值。
BigInteger BigInteger. mod (BigInteger m)
返回其值为 (this mod m ) 的 BigInteger。
BigInteger BigInteger. modInverse (BigInteger m)
返回其值为 (this-1 mod m) 的 BigInteger。
BigInteger BigInteger. modPow (BigInteger exponent, BigInteger m)
返回其值为 (thisexponent mod m) 的 BigInteger。
BigInteger BigInteger. multiply (BigInteger val)
返回其值为 (this * val) 的 BigInteger。
BigInteger BigInteger. or (BigInteger val)
返回其值为 (this | val) 的 BigInteger。
BigInteger BigInteger. remainder (BigInteger val)
返回其值为 (this % val) 的 BigInteger。
BigInteger BigInteger. subtract (BigInteger val)
返回其值为 (this - val) 的 BigInteger。
BigInteger BigInteger. xor (BigInteger val)
返回其值为 (this ^ val) 的 BigInteger。
参数类型为 BigInteger 的 java.math 中的构造方法
BigDecimal (BigInteger val)
将 BigInteger 转换为 BigDecimal 。
BigDecimal (BigInteger unscaledVal, int scale)
将 BigInteger 非标度值和 int 标度转换为 BigDecimal 。
BigDecimal (BigInteger unscaledVal, int scale, MathContext mc)
将 BigInteger 非标度值和 int 标度转换为 BigDecimal (根据上下文设置进行舍入)。
BigDecimal (BigInteger val, MathContext mc)
将 BigInteger 转换为 BigDecimal (根据上下文设置进行舍入)。
java.util 中 BigInteger 的使用
返回 BigInteger 的 java.util 中的方法
BigInteger Scanner. nextBigInteger ()
将输入信息的下一个标记扫描为一个 BigInteger 。
BigInteger Scanner. nextBigInteger (int radix)
将输入信息的下一个标记扫描为一个 BigInteger 。
java.math 中 BigDecimal 的使用
声明为 BigDecimal 的 java.math 中的字段
static BigDecimal BigDecimal. ONE
值为 1,标度为 0。
static BigDecimal BigDecimal. TEN
值为 10,标度为 0。
static BigDecimal BigDecimal. ZERO
值为 0,标度为 0。
返回 BigDecimal 的 java.math 中的方法
BigDecimal BigDecimal. abs ()
返回 BigDecimal ,其值为此 BigDecimal 的绝对值,其标度为 this.scale() 。
BigDecimal BigDecimal. abs (MathContext mc)
返回其值为此 BigDecimal 绝对值的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. add (BigDecimal augend)
返回一个 BigDecimal ,其值为 (this + augend) ,其标度为 max(this.scale(), augend.scale()) 。
BigDecimal BigDecimal. add (BigDecimal augend, MathContext mc)
返回其值为 (this + augend) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. divide (BigDecimal divisor)
返回一个 BigDecimal ,其值为 (this / divisor) ,其首选标度为 (this.scale() - divisor.scale()) ;如果无法表示准确的商值(因为它有无穷的十进制扩展),则抛出 ArithmeticException 。
BigDecimal BigDecimal. divide (BigDecimal divisor, int roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为 this.scale() 。
BigDecimal BigDecimal. divide (BigDecimal divisor, int scale, int roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为指定标度。
BigDecimal BigDecimal. divide (BigDecimal divisor, int scale, RoundingMode roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为指定标度。
BigDecimal BigDecimal. divide (BigDecimal divisor, MathContext mc)
返回其值为 (this / divisor) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. divide (BigDecimal divisor, RoundingMode roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为 this.scale() 。
BigDecimal [] BigDecimal. divideAndRemainder (BigDecimal divisor)
返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟对两个操作数计算所得到的 remainder 。
BigDecimal [] BigDecimal. divideAndRemainder (BigDecimal divisor, MathContext mc)
返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟根据上下文设置对两个操作数进行舍入计算所得到的 remainder 的结果。
BigDecimal BigDecimal. divideToIntegralValue (BigDecimal divisor)
返回 BigDecimal ,其值为向下舍入所得商值 (this / divisor) 的整数部分。
BigDecimal BigDecimal. divideToIntegralValue (BigDecimal divisor, MathContext mc)
返回 BigDecimal ,其值为 (this / divisor) 的整数部分。
BigDecimal BigDecimal. max (BigDecimal val)
返回此 BigDecimal 和 val 的最大值。
BigDecimal BigDecimal. min (BigDecimal val)
返回此 BigDecimal 和 val 的最小值。
BigDecimal BigDecimal. movePointLeft (int n)
返回一个 BigDecimal ,它等效于将该值的小数点向左移动 n 位。
BigDecimal BigDecimal. movePointRight (int n)
返回一个 BigDecimal ,它等效于将该值的小数点向右移动 n 位。
BigDecimal BigDecimal. multiply (BigDecimal multiplicand)
返回一个 BigDecimal ,其值为 (this × multiplicand) ,其标度为 (this.scale() + multiplicand.scale()) 。
BigDecimal BigDecimal. multiply (BigDecimal multiplicand, MathContext mc)
返回其值为 (this × multiplicand) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. negate ()
返回 BigDecimal ,其值为 (-this) ,其标度为 this.scale() 。
BigDecimal BigDecimal. negate (MathContext mc)
返回其值为 (-this) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. plus ()
返回 BigDecimal ,其值为 (+this) ,其标度为 this.scale() 。
BigDecimal BigDecimal. plus (MathContext mc)
返回其值为 (+this) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. pow (int n)
返回其值为 (thisn ) 的 BigDecimal ,准确计算该幂,使其具有无限精度。
BigDecimal BigDecimal. pow (int n, MathContext mc)
返回其值为 (thisn ) 的 BigDecimal 。
BigDecimal BigDecimal. remainder (BigDecimal divisor)
返回其值为 (this % divisor) 的 BigDecimal 。
BigDecimal BigDecimal. remainder (BigDecimal divisor, MathContext mc)
返回其值为 (this % divisor) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. round (MathContext mc)
返回根据 MathContext 设置进行舍入后的 BigDecimal 。
BigDecimal BigDecimal. scaleByPowerOfTen (int n)
返回其数值等于 (this * 10n ) 的 BigDecimal。
BigDecimal BigDecimal. setScale (int newScale)
返回一个 BigDecimal ,其标度为指定值,其值在数值上等于此 BigDecimal 的值。
BigDecimal BigDecimal. setScale (int newScale, int roundingMode)
返回一个 BigDecimal ,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。
BigDecimal BigDecimal. setScale (int newScale, RoundingMode roundingMode)
返回 BigDecimal ,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。
BigDecimal BigDecimal. stripTrailingZeros ()
返回数值上等于此小数,但从该表示形式移除所有尾部零的 BigDecimal 。
BigDecimal BigDecimal. subtract (BigDecimal subtrahend)
返回一个 BigDecimal ,其值为 (this - subtrahend) ,其标度为 max(this.scale(), subtrahend.scale()) 。
BigDecimal BigDecimal. subtract (BigDecimal subtrahend, MathContext mc)
返回其值为 (this - subtrahend) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. ulp ()
返回此 BigDecimal 的 ulp(最后一位的单位)的大小。
static BigDecimal BigDecimal. valueOf (double val)
使用 Double.toString(double) 方法提供的 double 规范的字符串表示形式将 double 转换为 BigDecimal 。
static BigDecimal BigDecimal. valueOf (long val)
将 long 值转换为具有零标度的 BigDecimal 。
static BigDecimal BigDecimal. valueOf (long unscaledVal, int scale)
将 long 非标度值和 int 标度转换为 BigDecimal 。
参数类型为 BigDecimal 的 java.math 中的方法
BigDecimal BigDecimal. add (BigDecimal augend)
返回一个 BigDecimal ,其值为 (this + augend) ,其标度为 max(this.scale(), augend.scale()) 。
BigDecimal BigDecimal. add (BigDecimal augend, MathContext mc)
返回其值为 (this + augend) 的 BigDecimal (根据上下文设置进行舍入)。
int BigDecimal. compareTo (BigDecimal val)
将此 BigDecimal 与指定的 BigDecimal 比较。
BigDecimal BigDecimal. divide (BigDecimal divisor)
返回一个 BigDecimal ,其值为 (this / divisor) ,其首选标度为 (this.scale() - divisor.scale()) ;如果无法表示准确的商值(因为它有无穷的十进制扩展),则抛出 ArithmeticException 。
BigDecimal BigDecimal. divide (BigDecimal divisor, int roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为 this.scale() 。
BigDecimal BigDecimal. divide (BigDecimal divisor, int scale, int roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为指定标度。
BigDecimal BigDecimal. divide (BigDecimal divisor, int scale, RoundingMode roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为指定标度。
BigDecimal BigDecimal. divide (BigDecimal divisor, MathContext mc)
返回其值为 (this / divisor) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. divide (BigDecimal divisor, RoundingMode roundingMode)
返回一个 BigDecimal ,其值为 (this / divisor) ,其标度为 this.scale() 。
BigDecimal [] BigDecimal. divideAndRemainder (BigDecimal divisor)
返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟对两个操作数计算所得到的 remainder 。
BigDecimal [] BigDecimal. divideAndRemainder (BigDecimal divisor, MathContext mc)
返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟根据上下文设置对两个操作数进行舍入计算所得到的 remainder 的结果。
BigDecimal BigDecimal. divideToIntegralValue (BigDecimal divisor)
返回 BigDecimal ,其值为向下舍入所得商值 (this / divisor) 的整数部分。
BigDecimal BigDecimal. divideToIntegralValue (BigDecimal divisor, MathContext mc)
返回 BigDecimal ,其值为 (this / divisor) 的整数部分。
BigDecimal BigDecimal. max (BigDecimal val)
返回此 BigDecimal 和 val 的最大值。
BigDecimal BigDecimal. min (BigDecimal val)
返回此 BigDecimal 和 val 的最小值。
BigDecimal BigDecimal. multiply (BigDecimal multiplicand)
返回一个 BigDecimal ,其值为 (this × multiplicand) ,其标度为 (this.scale() + multiplicand.scale()) 。
BigDecimal BigDecimal. multiply (BigDecimal multiplicand, MathContext mc)
返回其值为 (this × multiplicand) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. remainder (BigDecimal divisor)
返回其值为 (this % divisor) 的 BigDecimal 。
BigDecimal BigDecimal. remainder (BigDecimal divisor, MathContext mc)
返回其值为 (this % divisor) 的 BigDecimal (根据上下文设置进行舍入)。
BigDecimal BigDecimal. subtract (BigDecimal subtrahend)
返回一个 BigDecimal ,其值为 (this - subtrahend) ,其标度为 max(this.scale(), subtrahend.scale()) 。
BigDecimal BigDecimal. subtract (BigDecimal subtrahend, MathContext mc)
返回其值为 (this - subtrahend) 的 BigDecimal (根据上下文设置进行舍入)。
java.util 中 BigDecimal 的使用
返回 BigDecimal 的 java.util 中的方法
BigDecimal Scanner. nextBigDecimal ()
将输入信息的下一个标记扫描为一个 BigDecimal 。