【发布时间】:2019-09-22 20:30:39
【问题描述】:
// 我试图找到 (n^n)%1000000007,其中 n 是该系列的第 n 个斐波那契项。 示例:n=3 和 4 (2^2)
public class Sol_Big {
public static void main(String args[])
{
int n =10000000;
BigInteger a = BigInteger.ZERO;
BigInteger b = BigInteger.ONE;
BigInteger c = BigInteger.valueOf(1);
BigInteger MOD = BigInteger.valueOf(1000000007);
for (int j=2 ; j<=n ; j++)
{
c = a.add(b);
c=c.mod( MOD);
a = b.mod(MOD);
b = c.mod(MOD);
}
System.out.println(c);
BigInteger result = BigInteger.valueOf(1);
result = c.modPow(c, MOD);
int intval = result.intValue();
System.out.println( intval);
}
}
// 我的代码适用于 10^7 输入,但对于 10^8 及以后的输入,它已超出时间限制....
【问题讨论】:
-
为此目的使用 stringbuffer 是个好主意。在 sr=tring 缓冲区中进行操作并返回最终字符串。
标签: java fibonacci biginteger