Java大數相加(多個大數相加)-hdu1250
阿新 • • 發佈:2018-12-16
題目連結: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 }