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

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

题目描述:

题目大意是:已知一个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]应该用一个单独的括号括起来。

代码实现:

 1 //package practice;
 2 
 3 import java.math.BigInteger;
 4 import java.util.Scanner;
 5 
 6 public class Main{
 7     public static void main(String[] args) {
 8         Scanner scanner=new Scanner(System.in);
 9         while(scanner.hasNext()) {
10             int n=scanner.nextInt();
11             BigInteger[] f=new BigInteger[100005];
12             f[1]=f[2]=f[3]=f[4]=BigInteger.ONE;
13             for(int i=5;i<=n;i++) {
14                 f[i]=(f[i-1]).add(f[i-2]).add(f[i-3]).add(f[i-4]);//第一个f[i-1]要加上括号,不然会WA
15             }
16             System.out.println(f[n]);
17         }
18     }
19 }

猜你喜欢

转载自www.cnblogs.com/LJHAHA/p/10125766.html