前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言刷题随记 —— 疯狂的兔子

C语言刷题随记 —— 疯狂的兔子

作者头像
繁依Fanyi
发布2023-05-07 17:35:54
3890
发布2023-05-07 17:35:54
举报
在这里插入图片描述
在这里插入图片描述

题目

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

在这里插入图片描述
在这里插入图片描述

思路

兔子的规律为数列 1,1,2,3,5,8,13,21… 符合斐波那契数列的变化规则,可以使用循环或者递归解这一题。

题解

① 循环

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    long f1,f2;
    int i;
    
    f1=f2=1;
    
    for(i=1;i<=20;i++)
    {
        printf("%12ld %12ld",f1,f2);
        
        if(i%2==0)
        {
            printf("\n");    //控制输出,每行四个
        }

        f1=f1+f2;   //前两个月加起来赋值给第三个月
        f2=f1+f2;   //前两个月加起来赋值给第三个月
    }
}

② 递归

代码语言:javascript
复制
#include <stdio.h>


long countRabbit(long f)
{

    if(f==1 || f==2)
    {
        return 1;
    }
    else
    {
        return countRabbit(f-1) + countRabbit(f-2);
    }
}

int main()
{

   int month ;
   int i;

   printf("请输入月份:");
   scanf("%d",&month);

   for(i=1;i<=month;i++)
   {
       long f = countRabbit(i);

       printf("%12ld",f);

       if(i%4==0)
       {
           printf("\n");
       }

   }
   return 0;

}

样例输出

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 思路
  • 题解
  • 样例输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档