1.头文件
import java.math.BigInteger;
import java.util.Scanner;
2.输入输出
输入:
Scanner cin = new Scanner(System.in);
while (cin.hasNextInt());
输出:
System.out.println(f[n]);
3.数组定义
BigInteger f[] = new BigInteger[105];
4.一些函数及应用
卡特兰数应用:hdu 1130,1131,1134
http://acm.hdu.edu.cn/showproblem.php?pid=1134
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigInteger f[] = new BigInteger[105];
int i, n, num;
f[1] = new BigInteger("1");
for (i = 2; i < 105; i++) {
num = 4 * i - 2;
f[i] = f[i - 1].multiply(BigInteger.valueOf(num));
f[i] = f[i].divide(BigInteger.valueOf(i + 1));
}
while (cin.hasNextBigInteger()) {
n = cin.nextInt();
if (n == -1)
break;
System.out.println(f[n]);
}
}
}
hdu 1063 Exponentiation:http://acm.hdu.edu.cn/showproblem.php?pid=1063
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigDecimal R, r;
String res;
int i, n;
while (cin.hasNextBigDecimal()) {
r = new BigDecimal("1");
R = cin.nextBigDecimal();
n = cin.nextInt();
for (i = 0; i < n; i++)
r = r.multiply(R);
r = r.stripTrailingZeros(); // 消除尾数0
res = r.toPlainString(); // 大数->字符串
if (res.startsWith("0.")) // 判断字符串是否以某字符串开始
res = res.substring(1);
System.out.println(res);
}
}
}
hdu 1316 How Many Fibs?:http://acm.hdu.edu.cn/showproblem.php?pid=1316
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, ans;
BigInteger x, y, Zero;
BigInteger f[] = new BigInteger[505];
f[1] = new BigInteger("1");
f[2] = new BigInteger("2");
Zero = new BigInteger("0");
for (i = 3; i < 505; i++)
f[i] = f[i - 1].add(f[i - 2]);
while (cin.hasNextBigInteger()) {
x = cin.nextBigInteger();
y = cin.nextBigInteger();
if (x.compareTo(Zero) == 0 && y.compareTo(Zero) == 0)
break;
ans=0;
for(i=1;i<505;i++) //暴力查找
{
if(x.compareTo(f[i])<=0&&y.compareTo(f[i])>=0)
ans++;
}
System.out.println(ans);
}
}
}
hdu 1753 大明A+B:http://acm.hdu.edu.cn/showproblem.php?pid=1753
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
BigDecimal x,y;
while(cin.hasNextBigDecimal())
{
x=cin.nextBigDecimal();
y=cin.nextBigDecimal();
x=x.add(y);
//消除尾数0;防止高精度数表示成科学计数法
System.out.println(x.stripTrailingZeros().toPlainString());
}
}
}