HDU 5686 Problem B(大数:斐波那契)

Problem B

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1493    Accepted Submission(s): 612


Problem Description
  度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。
 

Input
这里包括多组测试数据,每组测试数据包含一个正整数 N,代表全1序列的长度。

1N200
 

Output
对于每组测试数据,输出一个整数,代表由题目中所给定的全1序列所能形成的新序列的数量。
 

Sample Input
 
  
1
3
5
 

Sample Output
 
  
1
3
8
Hint
如果序列是:(111)。可以构造出如下三个新序列:(111), (21), (12)。
import java.util.*;
import java.math.* ;

public class Main {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		BigInteger [] mat=new BigInteger[205];
		mat[1]=BigInteger.ONE;
		mat[2]=BigInteger.valueOf(2);
		for(int i=3;i<205;i++)
		{
			//double a=(double)i;
			mat[i]=mat[i-1].add(mat[i-2]);
			//System.out.println(mat[i]);
		}
		Scanner cin = new Scanner(System.in);
		while(cin.hasNext())
		{
			int n=cin.nextInt();
			System.out.println(mat[n]);
		}
	}
}

猜你喜欢

转载自blog.csdn.net/bbhhtt/article/details/80423708