百度之星资格赛 2016 Problem 1002

本文链接:http://www.cnblogs.com/Ash-ly/p/5494623.html

题意:

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

思路: 

  自己手动写几个后就会发现是大斐波那契.

代码:

import java.util.Scanner;
import java.math.BigInteger;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()){
            int n = sc.nextInt();
            BigInteger a1 = new BigInteger("1");
            BigInteger a2 = new BigInteger("2");
            BigInteger ans = new BigInteger("0");
            for(int i = 3; i <= n; i++){
                ans = a1.add(a2);
                a1 = a2, a2 = ans;
            }
            if(n <= 2)System.out.println(n);19             
            else      System.out.println(ans.toString());
        }
        sc.close();
    }
}

 

posted @ 2016-05-15 09:35  vrsashly  阅读(249)  评论(0编辑  收藏  举报