算法设计与分析 第三章——模拟法鸡兔同笼问题c++代码

本文主要是介绍算法设计与分析 第三章——模拟法鸡兔同笼问题c++代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

3.1.2 一个简单的例子:鸡兔同笼问题


【问题】笼子里有若干只鸡和兔子,鸡有两只脚,兔子有四只脚,没有例外情况。已知笼子里脚的数量,问笼子里至多有多少只动物?至少有多少只动物?
【想法】对于同样数目的动物,鸡脚的总数肯定比兔子脚的总数要少,因此在计算笼子里至多有多少只动物时,应该把脚都算作鸡脚,在计算笼子里至少有多少只动物时,应该尽可能把脚都算作兔子脚。
【算法】 设函数 Feets 实现鸡兔同笼问题,算法如下。
算法:鸡兔同笼问题Feets
输入:脚的数量n

输出:至多的动物数maxNum,至少的动物数minNum

1.如果n是奇数,则没有满足要求的解,maxNum=0, minNum=0;
2.如果n是偶数且能被4整除,则 maxNum=n/2, minNum=n/4;
3.如果n是偶数但不能被4整除,则 maxNum=n/2, minNum=(n-2)/4+1;
4. 输出 maxNum 和 minNum;
【算法分析】 算法 Feets只是进行了简单的判断和赋值,时间复杂度是O(1)。
【算法实现】 设形参 maxNum 和 minNum 以传引用方式接收求得的结果,程序如下。

#include <iostream>
using namespace std;
void Feets(int n, int &maxNum, int &minNum)
{
if (n % 2 != 0) {maxNum = 0; minNum = 0;}
else if (n % 4 == 0) {maxNum = n/2; minNum = n/4;}
else {maxNum = n/2; minNum = (n-2)/4 + 1;}
}
 
int main( )
{
int n, maxNum, minNum;
//cout<<"请输入脚的个数:";
cin>>n;
Feets(n, maxNum, minNum);
//cout< return 0;
cout<<"至多有"<<maxNum<<"只动物"<<endl;
cout<<"至少有"<<minNum<<"只动物"<<endl;
system("pause");
return 0;
}

这篇关于算法设计与分析 第三章——模拟法鸡兔同笼问题c++代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/791977

相关文章

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数