05【C语言 & 趣味算法】经典:兔子产子问题(即:Fibonacci数列)

简介: 05【C语言 & 趣味算法】经典:兔子产子问题(即:Fibonacci数列)

—、前情回顾



04【C语言&趣味算法】“抓交通肇事犯"问题。算法改进:设置"标识变量”,有效减少循环次数。

03【C语言&趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。

02【C语言&趣味算法】借书方案问题:小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借1本,则可以有多少种不同的借法?

01【C语言&趣味算法】百钱百鸡问题(问题简单,非初学者请忽略叭)。请注意算法的设计(程序的框架),程序流程图的绘制,算法的优化。


二、Problem:兔子产子问题



这是一个很经典的问题。


2.1 Description of the problem(问题描述)

5f8056f526004becaf7993154175cd8b.jpg


2.2Analysis of the problem(问题分析)

7e02182b54644a82ab4c24d6f29cc048.jpg


2.3 Algorithm design(算法设计)


660ba36fc822421bbf00c3e9f8f9b2af.jpg


2.4 Full code and output(完整code及输出)

根据上面的分析,可以得到如下code:


// 趣味05:兔子产子 问题 
#include<stdio.h>
int main()
{
  long fib1=1,fib2=1,fib;
  int i;
  printf("%12ld%12ld",fib1,fib2);   /*输出第一个月和第二个月的兔子数*/
  for(i=3;i<=30;i++)
  {
    fib=fib1+fib2;      /*迭代求出当前月份的兔子数*/
    printf("%12d",fib);   /*输出当前月份兔子数*/
    if(i%4==0)
      printf("\n");   /*每行输出4个*/
    fib2=fib1;      /*为下一次迭代作准备,求出新的fib2*/
    fib1=fib;     /*求出新的fib1*/
  }
}

正如下面我标的箭头—样,从第三个值开始,均是前两个的值之和。

37bce91cad2b4bc3938fce0577e4e738.jpg


2.5 lssue extension optimisation(问题拓展优化)

50c154ed3f0f4a399ad8c53be11b532a.jpg

相关文章
|
2月前
|
自然语言处理 算法 搜索推荐
C语言中谈论算法
C语言中谈论算法
11 0
C语言中谈论算法
|
1天前
|
机器学习/深度学习 算法 C语言
【C言专栏】递归算法在 C 语言中的应用
【4月更文挑战第30天】本文介绍了递归算法在C语言中的应用,包括基本概念(通过调用自身解决子问题)、特点(调用自身、终止条件、栈空间)和实现步骤(定义递归函数、分解问题、设置终止条件、组合解)。文中通过阶乘计算和斐波那契数列两个案例展示了递归的使用,强调了递归可能导致的栈溢出问题及优化需求。学习递归有助于理解和应用“分而治之”策略。
|
4天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
9天前
|
算法 搜索推荐 C语言
C语言用流程图表示算法
C语言用流程图表示算法
16 0
|
21天前
|
搜索推荐 算法 C语言
【排序算法】C语言实现随机快排,巨详细讲解
【排序算法】C语言实现随机快排,巨详细讲解
|
21天前
|
搜索推荐 C语言 C++
【排序算法】C语言实现归并排序,包括递归和迭代两个版本
【排序算法】C语言实现归并排序,包括递归和迭代两个版本
|
21天前
|
搜索推荐 算法 C语言
【排序算法】C语言实现选择排序与冒泡排序
【排序算法】C语言实现选择排序与冒泡排序
|
23天前
|
机器学习/深度学习 存储 算法
初阶数据结构之---导论,算法时间复杂度和空间复杂度(C语言)
初阶数据结构之---导论,算法时间复杂度和空间复杂度(C语言)
|
29天前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解
|
29天前
|
存储 算法 C语言
【算法与数据结构】 C语言实现单链表队列详解1
【算法与数据结构】 C语言实现单链表队列详解