Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2507495
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-04-07 17:54:14

    13世纪意大利数学家斐波那契在他的《算盘书》中提出这样一个问题:有一个人想知道一年内一对兔子可繁殖多少对,便筑了一道围墙把一对新生的兔子关在里面。已知一对两个月大的兔子一个月后可以繁殖一对小兔子,而一对新生的兔子出生两个月后才可以生小兔子。假如一年内没有发生死亡,则一年内共能繁殖多少对兔子。
    我们可以列出来如下的分析:
1个月 1
2个月 1
3个月 2
4个月 4
.... ...
因此我们可以很快的编写程序,使用递归进行计算,代码如下:
  1. #include <stdio.h>

  2. int Fibonacci(int n);

  3. int main(int argc, char *argv[])
  4. {
  5.   printf("there are %d pairs of rabbits 1 year later\n",Fibonacci(12));
  6.   return 0;
  7. }

  8. int Fibonacci(int n)
  9. {
  10.   if (n == 1 || n == 2)
  11.     return 1;
  12.   else
  13.     return Fibonacci(n-1) + Fibonacci(n-2);
  14. }
计算结果如下:
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out 
there are 144 pairs of rabbits 1 year later

阅读(2777) | 评论(1) | 转发(1) |
0

上一篇:猴子吃桃问题

下一篇:分解质因数

给主人留下些什么吧!~~

captivated2011-04-10 14:40:12

这你妹,加了个有噱头的名字被放到首页?
这不是让误以为有趣而误入的人,浪费了时间嘛!

只要学过C/C++的...谁它妹的没听说过Fibonacci数?...尤其一帮被谭老师的教材所毒害过的人...