zoukankan      html  css  js  c++  java
  • 算法兔子生兔子的问题(费氏数列)

    #include <stdio.h>
    int Fib( int n )
    {
    	// 说明// Fibonacci 为 1200 年代的欧洲数学家 , 在他的着作中曾经提到 : 「若有一只免子每个月生一只小 免
    	// 子 , 一个月后小免子也开始生产。起初只有一只免子,一个月后就有两只免子,二个月后有三
    	// 只免子,三个月后有五只免子(小免子投入生产) ...... 。
    	// 如果不太理解这个例子的话,举个图就知道了,注意新生的小免子需一个月成长期才会投入生
    	// 产,类似的道理也可以用于植物的生长,这就是 Fibonacci 数列,一般习惯称之为费氏数列,例
    	// 如以下: 1 、 1 、 2 、 3 、 5 、 8 、 13 、 21 、 34 、 55 、 89......
    	// 输入:月/
    	/ 输出:月对应的兔子数 
    	if( n>=0 ){
    		if( n==1 || n==0 ) return 1;
    		return Fib(n-1)+Fib(n-2);
    	}else return 0;
    }
    int main(int argc, char *argv[])
    {
    	int n;printf( "Please input n:" );
    	scanf( "%d", &n );
    	printf( "%d", Fib(n) );
    	return 0;
    }

    Java版

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.Reader;
    import java.nio.Buffer;
    
    
    public class Fib {
    	public static void main( String args[]){
    		String s = null;
    		try{		
    			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    			s = br.readLine();
    			
    		}catch( IOException e)
    		{
    			System.out.println("读写字符流出错!"+e);
    			System.exit(-1);
    		}catch( NumberFormatException e)
    		{
    			System.out.println("你输入的数据不是合法的!\n"+e);
    			System.exit(-1);
    		}
    		System.out.println( Integer.valueOf(s)+"个月后共有兔子数为"+Fib(Integer.valueOf(s))+"只!");
    	}
    	public static int Fib( int n )
    	{
    		if( n>=0 )
    		{
    			if( n==1 || n==0 ) return 1;
    			return Fib(n-1)+Fib(n-2);
    		}
    		else return 0;
    	}
    }
    


  • 相关阅读:
    ibatis $与#的区别
    (转载)Hibernate与Jpa的关系
    tomcat web工程 jar包冲突解决方法
    jquery 获取checkbox 选中值并拼接字符集
    mysql BLOB字段转String的方法
    Ajax工作原理
    Spring mvc 具体RequestMapping 参数含义
    覆盖bootstrap的样式
    开园啦,致曾经现在以后的自己~
    SimpleDateFormat 常规用法
  • 原文地址:https://www.cnblogs.com/arbboter/p/4225259.html
Copyright © 2011-2022 走看看