smile1110 发表于 2017-1-28 08:48

简单的数学题(斐波那契数列)

本帖最后由 smile1110 于 2017-1-28 19:44 编辑

问题:
有一对兔子,从出生后第 3 个月起每个月都生一对兔子
小兔子长到第三个月后每个月又生一对兔子
假如兔子都不死,问每个月的兔子总数为多少只?

这是一道古老的数学题,有n种解法,速度最快也最简单的是枚举数组 ps:c语言其实已经内置了Fibonacci函数


#include <stdio.h>
//有一对兔子,从出生后第 3 个月起每个月都生一对兔子
//小兔子长到第三个月后每个月又生一对兔子
//假如兔子都不死,问每个月的兔子总数为多少只?
//设 months   1月 2月      3月 4月 5月 6月 7月8月9月
//   total      1对 1对      2对 3对 5对 8对 13对 21对 34对
//         1   1       1+1 1+2 2+3 3+5 5+8 8+13 13+21

int main()
{
    int rabbit ,total,months;
    while(scanf("%d",&months)!=EOF)
    {
      if(months<3)
      printf("The total number of rabbits is 1");

      else
      {
            rabbit=rabbit=1;
            for(total=2;total<months;total++)
            rabbit=rabbit+rabbit;
            printf("The total number of rabbits is \t%d\n", (rabbit)*2);
      }

    return 0;
    }
}

Microooooogle 发表于 2017-1-28 10:55

送上一个java的作业题,可自行修改,,输出前20个数并判断某个数是否为斐波那契数列中的数
package build02;

import java.util.Scanner;

public class Fibonacci {

        public static void main(String[] args) {
                // TODO 自动生成的方法存根
                @SuppressWarnings("resource")
                Scanner scanner= new Scanner(System.in);
                System.out.println("<斐波那契数列>请输入待检验的数");
                long num=scanner.nextInt();
                long a[];a=new long;
                int k=1;
                a=0;a=1;a=1;
                for(int i=1;i<50;i++){
                        a=a+a;
                        if(i<=20){
                                System.out.println("第"+k+"个数字为:"+a);
                        };
                        k++;
                };
                for(int i=1;i<50;i++){
                        if(a==num){
                                System.out.println(num+"是斐波那契数列中的一个数,且为第"+i+"个数");
                                break;
                        };
                        if(a>num){
                                System.out.println(num+"不是斐波那契数列中的数");
                                break;
                        };
                };
        }

}

citizen 发表于 2017-1-28 21:06

本帖最后由 citizen 于 2017-1-28 21:13 编辑

def fib(x):
    n,a,b=0,0,1
    while n < x-1:
      a,b=b,a+b
      n+=1      
    print('the number of rabbit is: '+str(b))
感觉python果然简洁

O大表哥O 发表于 2017-1-28 09:16

这是什么

A-_虚伪_! 发表于 2017-1-28 09:17

为什么我看不懂

liu0604 发表于 2017-1-28 10:04

第一个IDE是codeblocks第二个是VS吗?

原野追逐 发表于 2017-1-28 10:07

谢谢分享

君如兰 发表于 2017-1-28 10:35

终于在论坛有看得懂的代码了{:1_924:}

奉聪 发表于 2017-1-28 10:49

{:301_982:} 输出那个a 为什么要乘以2啊

奉聪 发表于 2017-1-28 10:51

奉聪 发表于 2017-1-28 10:49
输出那个a 为什么要乘以2啊

晓得了,是有多少个,不是有多少对,看掉了

威武霸气潇洒涛 发表于 2017-1-28 11:08

新年快乐,谢谢分享
页: [1] 2 3
查看完整版本: 简单的数学题(斐波那契数列)