IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 母牛生小牛 -> 正文阅读

[C++知识库]母牛生小牛

88递增的牛群:若有一头小母牛,从第四年开始每年生育一头母牛,按照此规律,第n年时有多少母牛?请设计求解此问题的C语言程序。

因为从第四年开始小母牛才会开始生产一个小牛,生产的小牛经过三年后在第四年又会重新生产新的小牛,所以我们可以从此为切入点。

本题第一种做法就是:将前几年的牛的个数写出来,从而观察出规律。即:

第一年:1

第二年:1

第三年:1

第四年:2

第五年:3

第六年:4

第七年:6

第八年:9

第九年:13

第十年:19

...................

第n年:第n-1年个数+第n-3年数

不难发现:第n年:第n-1年个数+第n-3年数。所以可以根据此公式来设计C语言程序。

第二种方法:

由题意可知,由于母牛在第四年时会产生新的小牛,所以前三年都是一头牛。从第四年开始,第一头母牛要开始生产新的小牛(虽然我也不知道一头母牛怎么生产),同时新的小牛要在第四年时开始生产,因为每年都有新的小牛出生,所以每年可以产生的小牛数量会发生变化。但是本题的出发点是刚出生的小牛从第四年开始,之后的每一年都会生产新的小牛,而唯一发生变化的是本年新增加的能恰好可以生产的小牛的个数,所以唯一的变量就是每年新增加的能恰好生产的小牛数量(简称这种小牛)

都是这种小牛的数量怎么算呢?(不要怪我啰嗦)题上已经明确了刚出生的小牛从第四年开始每年生育一头母牛,所以这种小牛的数量就为三年前刚出生的小牛个数,而本年的小牛个数即为三年前刚出生的小牛个数+前一年的牛的个数。大家可以把前一年牛的个数理解为原来的牛的个数,把前三年前刚出生的小牛理解为本年新增的牛的个数。思路开朗了起来~~~

总上,我们可以设计四个变量来表示我们的思路;

oxnum表示本年牛的个数

oxnum1表示向前数第一年牛的个数

oxnum2表示向前数第二牛的个数

oxnum3表示向前数第三牛的个数

因此我们可以得到一下等式:

oxnum1=oxnum? ? ? ????????? /*今年的牛数成为明年向前数第一年的牛数*/

oxnum2=oxnum1? ? ????????? /*今年向前数第一年的牛数成为明年向前数第二年的牛数*/

oxnum3=oxnum2? ? ? ????????/*今年向前数第二年的牛数成为明年向前数第三年的牛数*/

这样,我们便有了迭代递推关系

参考代码如下:

#include<stdio.h>
int main(void){
?? ?int i,year,oxnum,oxnum1,oxnum2,oxnum3;
?? ?
?? ?printf("请输入年数:");
?? ?scanf("%d",&year);
?? ?
?? ?for(int i=1;i<=year;i++){
?? ??? ?
?? ??? ?if(i<4){
?? ??? ??? ?oxnum = oxnum1 = oxnum2 = oxnum3 = 1;
?? ??? ?}
?? ??? ?else{
?? ??? ??? ?oxnum = oxnum1 + oxnum3;
?? ??? ??? ?oxnum3 = oxnum2;
?? ??? ??? ?oxnum2 = oxnum1;
?? ??? ??? ?oxnum1 = oxnum;
?? ??? ?}
?? ??? ?printf("i =%2d->oxnumber =%3d \n",i,oxnum);
?? ??? ??
?? ?}
?? ?return 0;
}?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 15:45:21  更:2021-12-14 15:46:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:56:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码