斐波那契数列(高阶)(XYNUOJ/NYOJ 2051 光棍的yy) Java写法

2051: 光棍的yy

时间限制: 1 Sec   内存限制: 64 MB
提交: 20   解决: 9
您该题的状态:已完成
[提交][状态][讨论版]

题目描述

yy经常遇见一个奇怪的事情,每当他看时间的时候总会看见11:11,这个很纠结啊。

现在给你m个1,你可以把2个1组合成一个2,这样就不是光棍了,问这样的组合有多少种??

例如(111  可以拆分为 111 12 21  有三种)

输入

第一行输入一个n表示有n个测试数据 以下n行,每行输入m个1 (1 <= n,m <= 200)

输出

输出这种组合种数,占一行

样例输入

3
11
111
11111

样例输出

2
3
8

来源

nyoj高精度运算 


本题推一下就知道是斐波那契数列。

AC代码:

import java.io.*;
import java.math.*;
import java.util.*;
import java.lang.*;
public class 斐波那契数列 {
    public static void main(String[] args)
    {
        Scanner cin=new Scanner(new BufferedInputStream(System.in));
        BigInteger[] ans=new BigInteger [202];
        ans[1]=BigInteger.ONE;
        ans[2]=BigInteger.valueOf(2);
        for(int i=3;i<=201;i++)
        {
            ans[i]=ans[i-1].add(ans[i-2]);
        }
        BigInteger t;
        t=cin.nextBigInteger();
        while(cin.hasNext())
        {
            String s=cin.next();
            System.out.println(ans[s.length()]);
            t=t.subtract(BigInteger.valueOf(1));
            if(t.compareTo(BigInteger.valueOf(0))==0)
            break;
        }
    }
}

你可能感兴趣的:(斐波那契数列(高阶)(XYNUOJ/NYOJ 2051 光棍的yy) Java写法)