版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37868325/article/details/84348913
大数取余
BigInteger bi = new BigInteger(99999999999999999999);
int i = bi.remainder(nwe BigInteger(10)).intValue();
JAVA模板 大整数模板 高精度
保存为main.java (跟class名相同)
import java.io.*;
import java.util.*;
import java.math.*;
public class main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigInteger mod = BigInteger.valueOf(1);
for(int i = 1; i <= 100; i++)
mod = mod.multiply(BigInteger.valueOf(10));
while(in.hasNext())
{
int n = in.nextInt();
BigInteger ans = BigInteger.valueOf(1);
BigInteger ret = BigInteger.valueOf(1);
for(int i = 1; i+i <= n; i++)
{
ans = ans.multiply(BigInteger.valueOf(n-2*i+2));
ans = ans.multiply(BigInteger.valueOf(n-2*i+1));
ans = ans.divide(BigInteger.valueOf(i));
ans = ans.divide(BigInteger.valueOf(i+1));
ret = ret.add(ans);
}
ret = ret.mod(mod);
System.out.println(ret);
}
}
}
多维数组初始化
BigInteger f[] = new BigInteger[110];
BigInteger c[][] = new BigInteger[110][110];
for ( int i = 0 ; i <= 100 ; i++ )
for ( int j = 0 ; j <= 100 ; j++ ) c[i][j] = BigInteger.valueOf(0); //别忘了初始化
文件输入输出
//H
import java.io.*;
import java.util.*;
import java.math.*;
public class main {
public static void main(String[] args) throws FileNotFoundException {
//Scanner in = new Scanner(new File("trains.in"));
//PrintWriter out = new PrintWriter(new File("trains.out"));
FileInputStream cin = new FileInputStream("trains.in");
FileOutputStream cout = new FileOutputStream("trains.out");
Scanner in = new Scanner(cin);
PrintStream out = new PrintStream(cout);
BigInteger f[] = new BigInteger[110];
BigInteger c[][] = new BigInteger[110][110];
for ( int i = 0 ; i <= 100 ; i++ )
for ( int j = 0 ; j <= 100 ; j++ ) c[i][j] = BigInteger.valueOf(0);
c[0][0]=BigInteger.valueOf(1);
for(int i = 1; i <= 100; i++)
{
c[i][0]=BigInteger.valueOf(1);
for (int j=1; j<=i; j++)
{
c[i][j] = c[i-1][j-1].add(c[i-1][j]);
}
}
f[2]=BigInteger.valueOf(1);
for (int i=3; i<=100; i++)
{
f[i]=BigInteger.valueOf(2).pow(i*(i-1)/2);
for (int j=2; j<=i-1; j++)
f[i]=f[i].subtract(f[j].multiply(c[i][j]));
f[i]=f[i].subtract(BigInteger.valueOf(1));
}
while(in.hasNext())
{
int n = in.nextInt(); //input
out.println(f[n]);
}
in.close();
out.close(); //close
}
}