Java大数相加(多个大数相加)-hdu1250

时间:2023-03-10 01:33:18
Java大数相加(多个大数相加)-hdu1250

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1250

题目描述:

Java大数相加(多个大数相加)-hdu1250Java大数相加(多个大数相加)-hdu1250

题目大意是:已知一个Hat's Fibonacci序列,该序列满足F(1) = 1, F(2) = 1, F(3) = 1,F(4) = 1, F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4);

此题用java的BigInteger处理很方便,但是因为我在处理F(n>4) = F(n - 1) + F(n-2) + F(n-3) + F(n-4)时,出现表达错误而编译器未检验出来,导致WA了很多次。表达上式用f[i]=(f[i-1]).add(f[i-2]).add(f[i-3]).add(f[i-4]);值得注意的是第一个F[i-1]应该用一个单独的括号括起来。

代码实现:

 //package practice;

 import java.math.BigInteger;
import java.util.Scanner; public class Main{
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()) {
int n=scanner.nextInt();
BigInteger[] f=new BigInteger[100005];
f[1]=f[2]=f[3]=f[4]=BigInteger.ONE;
for(int i=5;i<=n;i++) {
f[i]=(f[i-1]).add(f[i-2]).add(f[i-3]).add(f[i-4]);//第一个f[i-1]要加上括号,不然会WA
}
System.out.println(f[n]);
}
}
}