当前位置:编程学习 > JAVA >>

NYOJ 光棍的yy 斐波那契 大数

输入
第一行输入一个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()]);
  }
  
 }

}

 

 

 

 


 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,