母牛的故事(C语言)

题目描述
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

输入
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。

输出
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。

样例输入
2
4
5
0
样例输出
2
4
6

题解代码一:

#include<stdio.h>
#define N 55                                //定义最大数
int monther_cow[N];                         //定义输出数组
void monther_cow2(int n);                   //声明int main()
{int input[N];                          //定义输入数组,存储输入信息monther_cow2(N);                          //直接调用枚举存储的函数,实现枚举过程int i = 0;do{scanf("%d",&input[i]);}while(input[i++] != 0);                //完成输入操作(先存入数组中,实现一口气输入,一口气输出,并非输入一个输出一个结果)for(int j = 0 ; j < i-1 ; j++)          //输出结果(循环次数=总的个数){if( input[j] < 4)                   //个例{printf("%d\n",monther_cow[input[j]]);        //直接调用函数计算结果输出}else{printf("%d\n",monther_cow[input[j] - 1] + monther_cow[input[j] - 3] );           //直接调用函数计算结果输出}      }return 0;
}void monther_cow2(int n)                   //记录的斐波那契数列中对应的规律到数列        实现的计算方法
{int i;for(i = 1 ; i <= n ; i++){if( i < 4){monther_cow[i] = i;}else{monther_cow[i] = monther_cow[i - 1] + monther_cow[i - 3];     //规律总结,是前面一年和前面三年的总和}}
}

题解代码二:

#include<stdio.h>
int F(int n)
{if(n<=3)return n;elsereturn F(n-1)+F(n-3);
}int main()
{int n,s;while(scanf("%d",&n) && n){s=F(n);printf("%d",s);}return 0;
}
//简单实现方法,不过未设置存储数组,边输入边输出(不符题意)
//且反复调用递归(易超时),忽略了条件(n的取值范围意义)

结构:
1.输入:

  • do while(跳出条件) 语句
  • 数组存储输入信息(一口气存储,一口气输出)

2.实现算法:

  • 设置枚举函数,先计算好所有数值对应的结果存储好,直接调用(避免重复调用)

3.输出:

  • 对应数组大小,设置循环次数
  • 输出直接使用实现算法的函数计算的的值(已存储在数组中,直接调用对应的数组即可)

总结

  1. 主要用了“斐波那契数列”的知识来解答
  2. 函数递归来解题,导致时间超时,问题是由于每次解答一题要递归好几次
  3. 题目中的 0<n<55头牛的条件没用上,所以换个思路,先循环一次把到55头牛在斐波那契数列中的排列记录下来,之后解题时候调用数列就快了很多。
  4. 总体使用了两个数组(一个存储输入信息,一个存储算法函数计算出的结果值),一个算法实现函数(monther_cow2(int n)),主函数先调用算法实现函数实现枚举,再输入,输出
  5. 重要在于先枚举,总结出规律,设计算法

母牛的故事(C语言)相关推荐

  1. C语言递归之母牛的故事

    递归法下的母牛的故事(C语言) *题目如下:(该题目来自于C语言网上的1004题) *首先,该题目的题意有些不清楚,年初和年头是俩个不一样的概念. *我们根据规定的输入输出格式,可以推断出一下表格: ...

  2. HDU2018 母牛的故事【递推+记忆化递归】

    母牛的故事 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  3. hdu2018 母牛的故事(模拟)

    母牛的故事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  4. hd 2018 母牛的故事

    [BestCoder Round #3 来了!]8月3号19:00~21:00(赛前30分钟停止注册比赛) 母牛的故事 Time Limit: 2000/1000 MS (Java/Others)   ...

  5. HDU2018 母牛的故事

    母牛的故事 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  6. 函数递归简单题-hdoj-2044 2018-一只小蜜蜂 母牛的故事

    题目:一只小蜜蜂 递归做法: #include<cstdio> #include<iostream> #include<stdlib.h> #include< ...

  7. 题目 1004: [递归]母牛的故事

    题目 1004: [递归]母牛的故事 idea 1 2 3 4 6 9 13 第4年母牛的数量=第1年母牛的数量+第3年母牛的数量 第5年母牛的数量=第2年母牛的数量+第4年母牛的数量 第6年母牛的数 ...

  8. C++描述杭电OJ 2018.母牛的故事 ||

    C++描述杭电OJ 2018.母牛的故事 || Problem Description 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候 ...

  9. 数据结构与算法分析(十)——母牛的故事

    题目 母牛的故事 从前有一个农夫,他的名字叫做约翰.他养了很多很多头母牛.突然有一天,一只调皮的母牛走丢了,农夫要尽快的抓住她,不然她就又跑掉了!现在我们将问题简单化.假设农夫和母牛都站在一条数轴上, ...

  10. 【递推】HDU -2018 母牛的故事斐波那契兔子数列

    函数之递归的应用 母牛的故事 (这个问题还有很多类似的,比如种树,每一年种的树品质在改变,当然区别在于树不能生孩子.. 相应的人类达到法定年龄就可以生孩子,这个和母牛问题一样,只不过时间间隔变化了. ...

最新文章

  1. 当程序开发人员开始抛弃技术时,是否意味着噩梦的开始?抛弃了SQL Server 2000才发现客户的简单问题真的很难解决...
  2. ftp网页版服务器地址,免费ftp服务器地址汇总
  3. 项目解析jsx文件_React 基础:JSX 扩展语法
  4. Django Drops
  5. 机器学习(二)——贝叶斯算法
  6. 基于javaweb的前台展示+后台管理结合的在线购书系统(java+springboot+ssm+mysql)
  7. 软件研发管理之版本管理
  8. MySQL中关于超键,主键和候选键的区别
  9. 五种线粒体呼吸链复合体研究工具
  10. 【Matlab水果识别】形态学水果大小识别【含GUI源码 920期】
  11. 目前几种实时视频流协议对比
  12. UI设计需要的软件到底有哪些?UI新手必看
  13. html字体大小vw,如何使用CSS vw尺寸单位实现响应式字体
  14. 微信小程序生命周期笔记
  15. java 数字转换开发票大写格式_Java转化数字为大写人民币
  16. Unity 游戏存档框架实现
  17. case when 用法
  18. Win11驱动更新 USB-RS232
  19. 除了竞争,中美在自动驾驶领域可以有哪些合作
  20. 【附源码】计算机毕业设计SSM木棉堂水果电商平台

热门文章

  1. 【OS学习笔记】二 汇编语言和汇编软件
  2. html页面线条走动特效,html5 canvas绘制随机游动线条动画特效
  3. git里面的文件怎么删不掉_git如何删除已经提交的文件夹
  4. python学习日常-----作业(4)
  5. unity动画之帧动画使用
  6. Wordpress采集开心版,免费Wordpress采集发布伪原创
  7. 计算机科学技术的广告语,赞美科技的句子-十大经典深入人心科技类广告语
  8. 反汇编 之程序入口_start
  9. 微信公众账号开发教程(三) 实例入门:机器人(附源码) ——转自http://www.cnblogs.com/yank/p/3409308.html...
  10. 克隆硬盘后进不去系统_Windows 10克隆后ssd硬盘不能引导启动