NYOJ 光棍的yy 斐波那契 大数

2014-11-24 11:33:07 · 作者: · 浏览: 4

输入
第一行输入一个n表示有n个测试数据
以下n行,每行输入m个1
(1 <= n,m <= 200)
输出
输出这种组合种数,占一行
样例输入
3
11
111
11111样例输出
2
3
8

斐波那契数列,难点在大数处理和获取位数

用java写了代码


[java]
import java.io.*;
import java.math.*;
import java.util.*;

public class Main {
//斐波那契数列,1~200位,大数处理

public static void main(String[] args) {
Scanner cin=new Scanner(new BufferedInputStream(System.in));

BigInteger[] a=new BigInteger [202];
int n;
a[0]=BigInteger.ONE;
a[1]=BigInteger.ONE;
for(int i=2;i<=200;i++)
{
a[i]=a[i-1].add(a[i-2]);
}
n=cin.nextInt();
String s;
while(n-->0)
{
s=cin.next();//获取下一个字符串,nextLine是获取下一行
System.out.println(a[s.length()]);
}

}

}

import java.io.*;
import java.math.*;
import java.util.*;

public class Main {
//斐波那契数列,1~200位,大数处理

public static void main(String[] args) {
Scanner cin=new Scanner(new BufferedInputStream(System.in));

BigInteger[] a=new BigInteger [202];
int n;
a[0]=BigInteger.ONE;
a[1]=BigInteger.ONE;
for(int i=2;i<=200;i++)
{
a[i]=a[i-1].add(a[i-2]);
}
n=cin.nextInt();
String s;
while(n-->0)
{
s=cin.next();//获取下一个字符串,nextLine是获取下一行
System.out.println(a[s.length()]);
}

}

}