吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6568|回复: 26
收起左侧

[C&C++ 转载] 简单的数学题(斐波那契数列)

  [复制链接]
smile1110 发表于 2017-1-28 08:48
本帖最后由 smile1110 于 2017-1-28 19:44 编辑

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

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

兔子.jpg
[C] 纯文本查看 复制代码
#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[100] ,total,months;
    while(scanf("%d",&months)!=EOF)
    {
        if(months<3)
        printf("The total number of rabbits is 1");

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

    return 0;
    }
}

点评

难道不是用递归么?递归是最经典的解法吧  发表于 2017-1-28 13:19
儿子和女儿结婚是乱伦  发表于 2017-1-28 10:12

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
泽铭 + 1 + 1 已答复!
mjikop1231 + 1 只求一次的话浪费内存,离线查询枚举数组才有意义
oxxo119 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Microooooogle 发表于 2017-1-28 10:55
送上一个java的作业题,可自行修改,,输出前20个数并判断某个数是否为斐波那契数列中的数
[Java] 纯文本查看 复制代码
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[60];
		int k=1;
		a[0]=0;a[1]=1;a[2]=1;
		for(int i=1;i<50;i++){
			a[i+1]=a[i-1]+a[i];
			if(i<=20){
				System.out.println("第"+k+"个数字为:"+a[i]);
			};
			k++;
		};
		for(int i=1;i<50;i++){
			if(a[i]==num){
				System.out.println(num+"是斐波那契数列中的一个数,且为第"+i+"个数");
				break;
			};
			if(a[i]>num){
				System.out.println(num+"不是斐波那契数列中的数");
				break;
			};
		};
	}

}

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
smile1110 + 3 + 1 嘿嘿,这是java下的枚举数组吧,啧啧

查看全部评分

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

[Python] 纯文本查看 复制代码
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
终于在论坛有看得懂的代码了  
奉聪 发表于 2017-1-28 10:49
输出那个a[months-1] 为什么要乘以2啊
奉聪 发表于 2017-1-28 10:51
奉聪 发表于 2017-1-28 10:49
输出那个a[months-1] 为什么要乘以2啊

晓得了,是有多少个,不是有多少对,看掉了
威武霸气潇洒涛 发表于 2017-1-28 11:08
新年快乐,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 07:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表