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

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

声明:该内容节选自《C语言趣味编程100例》,博主在此只是记录与分享,力求能够传播更多的Ci言编程知识,让大家喜欢上C语言(★w ★)。请尊重原著,建议阅读原书,可以获得更多知识体验喔! ~


零、写在前面



算法是解决特定问题的方法,是程序设计的基础,是程序设计的灵魂。作为一个算法,应具备5个特性,即有穷性、确定性、可行性、输入和输出。计算机算法可分为两大类,分别是数值计算算法和非数值计算算法,数值计算Q的目的是求解数值,例如求方程的根;非数值计算算法主要用于处理事务领域的问题,如排序、查找等。该系列Blog旨在通过一些典型算法的介绍,引领读者走入计算机算法的世界,了解算法设计,学会用C语言来实现一个算法。


那么,来看今天的问题叭!


一、百钱百鸡问题



注:这系列问题,首先考虑用C语言来解决,如果有机(时)会(间)的话,博主会采用Python语言来处理。

该问题较为简单,但是需要关注的点是,算法是如何设计的?

还有就是,对于知识点的补充。

程序流程图的思路与绘制。

问题的优化。


1.1问题描述

67313e50a9cf40fbaa6c83947cbf49fd.jpg


1.2问题分析

0e12a30834d44b87afd4f10b04824e5e.jpg

1.3算法设计(请注意)

24c454199b6e45b29f3d23f54249d730.jpg


1.4知识点补充:结构化程序设计的3种基本结构

e01e3c05b897417eb0287ac4f20349e7.jpg039b65c9496f42fbb0b875e36d49b974.jpg


1.5确定程序框架

a2e7880079bd44f793a5f46aaaf3a2c5.jpg


1.6公鸡、母鸡和小鸡数量的确定

cd8dcd3521ae462c9e14d659db88c2d0.jpg


1.7完整code与输出


// 趣味01:百钱百鸡问题 
#include<stdio.h>
main()
{
 int cock,hen,chicken;
 for(cock=0;cock<=20;cock++)      /*外层循环控制公鸡数量取值范围0~20*/
   for(hen=0;hen<=33;hen++)     /*内层循环控制母鸡数量取值范围0~30*/
         for(chicken=0;chicken<=100;chicken++)
         /*内层循环控制小鸡数量取值范围0~100*/
    {
      if((5*cock+3*hen+chicken/3.0==100)&&(cock+hen+chicken==100))
    /*在内外层循环条件控制下小鸡数量的取值限制用难一组解的合理性*/
      printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
  }
}

输入如下:

cf2b77e6365743479f2e69f3872ff173.jpg


1.8附:程序流程图

7beecb2771d54cf281d0ef9eccfad3e6.jpg


1.9附:问题拓展,算法优化!

9ba59f7c90104dd6b376e2708a643be0.jpg


(即chicken小鸡的数目应当是整数,因为3只chicken为1钱~)

验证解的合理性,博主认为,这是本题解的一个亮点,一定程度上,减少了这种解法的运算量。


相关文章
|
4天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
26 3
|
4天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
21 2
|
19天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
|
16天前
|
算法
基于WOA鲸鱼优化的购售电收益与风险评估算法matlab仿真
本研究提出了一种基于鲸鱼优化算法(WOA)的购售电收益与风险评估算法。通过将售电公司购售电收益风险计算公式作为WOA的目标函数,经过迭代优化计算出最优购电策略。实验结果表明,在迭代次数超过10次后,风险价值收益优化值达到1715.1万元的最大值。WOA还确定了中长期市场、现货市场及可再生能源等不同市场的最优购电量,验证了算法的有效性。核心程序使用MATLAB2022a实现,通过多次迭代优化,实现了售电公司收益最大化和风险最小化的目标。
|
20天前
|
算法
通过matlab分别对比PSO,反向学习PSO,多策略改进反向学习PSO三种优化算法
本项目使用MATLAB2022A版本,对比分析了PSO、反向学习PSO及多策略改进反向学习PSO三种优化算法的性能,主要通过优化收敛曲线进行直观展示。核心代码实现了标准PSO算法流程,加入反向学习机制及多种改进策略,以提升算法跳出局部最优的能力,增强全局搜索效率。
|
16天前
|
算法
通过matlab对比遗传算法优化前后染色体的变化情况
该程序使用MATLAB2022A实现遗传算法优化染色体的过程,通过迭代选择、交叉和变异操作,提高染色体适应度,优化解的质量,同时保持种群多样性,避免局部最优。代码展示了算法的核心流程,包括适应度计算、选择、交叉、变异等步骤,并通过图表直观展示了优化前后染色体的变化情况。
|
20天前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。
|
21天前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
20天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
22天前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
39 1
下一篇
DataWorks