算法--兔子生兔子的问题(费氏数列)
2012-07-20 20:25
330 查看
#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; } }
相关文章推荐
- 算法--兔子生兔子的问题(费氏数列)
- 算法--兔子生兔子的问题(费氏数列)
- 算法习作:兔子生兔子问题 (-_-!)
- 算法——兔子问题
- 每天一道算法--经典兔子繁殖迭代问题(斐波那契数列)
- 经典的100个C算法__(1)兔子问题
- 1.5算法入门之兔子产仔问题
- 算法:狐狸吃兔子问题(约瑟环)
- 狐狸吃兔子问题算法
- 算法 狼找兔子问题
- java面试常用算法题深入剖析之兔子繁殖问题
- java小算法—数兔子问题
- 兔子问题----算法基础
- 经典的100个C算法__(1)兔子问题
- 趣味算法之兔子产子问题
- 兔子算法问题
- 【经典算法】:狐狸抓兔子问题
- 兔子问题,优化算法
- Fibonacci的【兔子数列】 以及 【狐狸找兔子】的问题 及 算法!
- 基础算法题----兔子问题(斐波那契数列)