您的位置:首页 > 其它

UVa 1646 - Edge Case(斐波那契+大整数)

2015-03-17 16:59 232 查看
给出n个点,求有多少组边(a,b)满足|a − b| ≡ 1 mod n。

设P
为边的个数,P[3]=4,P[4]=7。此后每项都是前两项的和。因为到10000项数很大,所以要用大整数,Java大整数比C++方便就用了。

原公式:

P[2n]=1+2n/1!+2n(2n-3)/2!+……+2n(n-1)!/n!

import java.math.*;
import java.util.*;
class Main
{
public static void main (String[] args)
{
BigInteger a[]=new BigInteger[10010];
a[3]=new BigInteger("4"),a[4]=new BigInteger("7");
for(int i=5;i<10010;++i)
a[i]=a[i-1].add(a[i-2]);
Scanner cin = new Scanner(System.in);
while (cin.hasNext()){
int n=cin.nextInt();
System.out.println(a
);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: