【C语言训练】百钱百鸡问题

C语言百钱买百鸡问题(详解版) 我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只? 阅读详情

题目链接:http://115.28.203.224/problem.php?cid=1010&pid=21

题目描述

中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

输入

输出

给出所有的解,每组解占一行
解的顺序:按“字典序”排列,即公鸡数少的在前;公鸡数相同,母鸡数少的在前
格式:
cock=%d,hen=%d,chicken=%d\n

提示

设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在0~20之间;同理,y的取值范围在0~33之间,可得到下面的不定方程:
5x+3y+z/3=100
x+y+z=100
所以此问题可归结为求这个不定方程的整数解。
由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。

注意

浮点数的比较不准确

代码

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5     int maxcock = 20;
 6     int maxhen = 34;
 7     for (int i = 0; i <= maxcock; i++)
 8     {
 9         for (int j = maxhen; j >= 0; j--)
10             if (14 * i + 8 * j == 200)
11                 cout<<"cock="<<i<<",hen="<<j<<",chicken="<<100 - i - j<<endl;
12     }
13     return 0;
14 }
求解 百钱百鸡 的几种方法(py)_百钱买百鸡python编程 阅读详情

相关推荐

C语言算法实战:从水仙花数到百钱百鸡的7个必练题目(含RAPTOR实现技巧)

本文通过7个经典算法题目(如水仙花数、百钱百鸡等)详细讲解C语言与RAPTOR的实现技巧,涵盖递归、循环优化等核心编程概念。特别提供RAPTOR流程图与C语言代码的对比实践,帮助开发者掌握算法思维和双环境编程能力,适合算法学习和教学参考。

weixin_30733003的博客 487

python算法1.5百钱百鸡

1.问题描述 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只? 2.解题思路 用百钱如果只买公鸡,最多可以买20只,但题目要求买100只,由此可知,所买公鸡的数量肯定在0~20之间。同理,母鸡的数量在0~33之间。在此不妨把公鸡、母鸡和小鸡的数量分别设为cock、hen、chicken,则cock+hen+chicken=100, 3.代码实现过程 for cock in range(0,

qq_42111085的博客 1498

别只刷LeetCode了!用这20道C语言经典趣味题,重燃你的编程内功(附完整代码)

本文精选20道C语言经典趣味编程题,从百钱百鸡到汉诺塔,通过游戏化思维提升编程内功。这些题目不仅涵盖递归、数据结构、算法优化等核心概念,还能帮助理解计算机科学经典谜题,适合编程初学者和进阶者挑战。

weixin_33695450的博客 292

百鸡百钱 - 经典问题

百鸡百钱 - 经典问题1. 百鸡百钱2. 问题分析3. 编码4. 总结 1. 百鸡百钱 百鸡百钱,即公鸡每只5元,母鸡每只3元,小鸡3只1元,一百元买一百只鸡, 问: 分别有多少只公鸡、母鸡和小鸡? 2. 问题分析 假设公鸡为x只,母鸡为y只,小鸡z只,那么以下公式成立: x + y + z = 100 5x + 3y + z/3 = 100 按极限思维分析: 如果只买公鸡,最多能买100/5 = 20只,同理,母鸡最多能买33只。 而 z = 100 - 20 - 33 = 47,向3的倍数取整为4

小小的进步 2686

RAPTOR与C语言实战:经典算法练习精解(附完整代码)

本文通过RAPTOR流程图工具与C语言的结合,详细解析了水仙花数、猴子吃桃和百钱买百鸡等经典算法的实现过程。从流程图设计到C语言代码转换,帮助编程新手建立计算思维,提升算法实现能力。附完整代码示例,适合初学者快速上手。

weixin_29018815的博客 98

别只刷题了!用C语言重解‘百钱百鸡’和‘狼追兔子’,聊聊古典问题背后的编程思维

本文通过解析‘百钱百鸡’和‘狼追兔子’等古典算法问题,探讨了编程思维在现代开发中的应用。从穷举法到优化策略,再到环形结构的模式识别,这些经典案例不仅培养计算思维,还能应用于资源分配、系统设计等实际场景。文章特别适合准备杭电、网安等复试上机编程题的考生参考。

weixin_30892763的博客 241

1141: C语言训练-百钱百鸡问题_剪枝循环

1141: C语言训练-百钱百鸡问题_剪枝循环

这题AC再睡 409

C++经典算法实战:百钱百鸡问题详解与实现

在编写百钱百鸡问题的C++程序时,首要任务是为参与计算的各个量分配合适的变量并指定恰当的数据类型。由于题目涉及的是鸡的数量(非负整数)和总价(固定为100文),所有相关变量本质上均为整数,因此选用int类型最为合适。若考虑更大规模扩展或极端边界情况,也可评估是否需要使用long或,但就当前问题而言,int已完全满足需求。完全消除枚举冗余:不再尝试无效的 $y$ 值,而是直接求解唯一可能的整数解。整数运算保障精度:避免浮点运算带来的舍入误差,确保逻辑严谨。可扩展性强。

weixin_34945060的博客 932

百钱百鸡问题(C)

题目链接:https://www.bilibili.com/video/av21356335 问题描述:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问能够买公鸡、母鸡、小鸡各多少只? 首先根据问题列出解体方程组: 其中公鸡最多20只,母鸡最多33只,小鸡最多100只 #include <stdio.h> int main(void) { in...

GreatcloudL的博客 690

[CARLA系列--01]CARLA 0.9.15 在Windows下的安装教程(一)

Carla是一款开源的自动驾驶仿真器,它基本可以用来帮助训练自动驾驶的所有模块,包括感知系统,Localization, 规划系统等等.Carla这个产品目前已经更新到了最新的0.9.15版本,目前遇到好多人在windows系统上如何安装可编辑版的Carla遇到了好多问题,所以针对在windows上的安装,推出此列教程.

汽车ECU自动化测试 4651

骚操作,尝试使用Xilinx XVC协议,通过Jlink来下载调试Xilink zynq FPGA芯片

最近一直在玩zynq芯片,手头使用的Xilinx Platform USB Cable 下载线真是辣鸡,速度慢如蜗牛,每次下载bit文件或者烧写flash文件都要大半天,实在是难以忍受。逻辑分析仪看了下xilinx的下载线,速度只有6.25M,并且数据间隔非常大,不懂这线的开发者咋想的,这总线利用率真是低到爆了 上图为xilinx DLC 10下载线波形,惨不忍睹! 为了不浪费生命在下载等待时间上,我打算找找看有没有别的仿真调试选择。经过一番查找后发现Xilinx的仿真器好像选择不是很多,要么贵死要

听我瞎扯淡的博客 1万+

算法修炼之练气篇——练气七层

前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的,练完这200多道题就考了今年第十四届的B组蓝桥杯C/C++获得了省一,后面还会更新“算法修炼之筑基篇”里面包括了省赛到国赛这一个月训练的刷奖计划,大概有40道左右,感兴趣的话可以关注一下命运之光)

VLOKL的博客 2248

VsCode+JLink+GCC替代Keil开发GD32程序-个人总结

对个人使用vscode+Jlink开发GD32程序做了总结,供需要者参考。

MyCollege1999的博客 2763

数据结构 实验一:1.复数四则运算;2.百钱买百鸡

数据结构 实验一:1.复数四则运算;2.百钱买百鸡 一、实验目的 通过本实验的学习,复习C语言编程并认识数据结构,练习对程序进行简单的算法分析,为后续的数据结构实现及算法性能分析奠定基础。 二、实验内容 1.复数四则运算 【问题描述】 设计一个可进行复数运算的演示程序。 【基本要求】 请使用结构体设计实现下列六种基本运算:1)由输入的实部和虚部生成一个复数;2)两个复数求和;3)两个复数求差;4)两个复数求积;5)从已知复数中分离出实部;6)从已知复数中分离出虚部。运算结果以相应的复数或实数的表示形式显示

m0_47161653的博客 2914

【四旋翼】pixhawk2.4.8-地面站配置-APM固件-四旋翼从装机到试飞

因为MP版本和APM版本的适配问题,真的真的是很大一个坑。最好先走别人走过的路,走通了再去自由发挥,不然白白浪费时间。下面提供我试飞成功过的版本。下面提供任意版本固件和地面站的下载方法。

xifan的博客 3万+

opencode : 无法将“opencode“项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

opencode命令识别问题与openclawcodexgemini确保的路径在 PATH 中。这个知识对所有 npm 全局工具通用。

一键难忘的博客 4521

从RAPTOR到C语言:零基础搞定‘百钱买百鸡‘等数学问题(成都工业同款练习题)

本文介绍了一种高效的编程学习方法:先使用RAPTOR流程图工具理清逻辑,再转化为C语言代码,以攻克‘百钱买百鸡’、‘水仙花数’等经典数学编程问题。该方法能帮助初学者绕过语法细节,专注于算法设计,实现从逻辑构思到代码实现的平滑过渡,尤其适合编程新手和完成课设的学生。

j2k3l4的博客 659

【ComfyUI专栏】ComfyUI 数字人方案-ComfyUI-EchoMimic

EchoMimic是一个基于图片和语音的数字人生成方案,通过ComfyUI节点实现。该方案安装简单,需下载特定模型文件(Unet、AudioProcessor和VAE)并保存本地。相比其他数字人生成方案,其节点操作更简便,支持多种Pose姿态选择,并能结合视频内容进行姿态同步,通过音频同步口型实现动态内容创建。生成的数字人效果直观,适用于快速创建个性化数字形象。

技术与管理的平衡木- 464

【初学者入门C语言】之算法篇(二)

主要介绍了枚举法和递归法,用枚举法实现‘’百鸡问题‘’,用递归法实现斐波那契数列

m0_67388084的博客 1098

[RK3568 Android11] 开发之默认授予系统预置的APP权限

目录 一、系统预置的APP权限 二、默认授予系统预置的APP权限 一、系统预置的APP权限 1、在打开系统预置的APP时,都会弹窗提示,并且需要人工确定授予权限; 2、有些客户对定制有需求,需要系统预置的APP自动默认授予权限; 二、默认授予系统预置的APP权限 注意此方法只对系统预置的APP起效果,后期手动安装的APP无效; 修改文件: frameworks/base/services/core/java/com/android/server/pm/per...

~未来可期~ 5059

AI 智能体(Agent)应用开发工程师 · 进阶面试 (五)

在有多位 Agent 共同参与决策时(如评审委员会、代码审查小组),它们可能提出截然相反的建议。共识机制就是用来在这种冲突中得出唯一行动方案的规则。常用机制:多数投票:每个 Agent 一票,根据投票结果决定。实现简单,但忽略了专业度差异。加权投票:根据 Agent 的角色重要性或历史表现赋予不同权重,例如首席架构师 Agent 的票权重是普通开发者 Agent 的 2 倍。管理者仲裁:由一个权限更高的 Manager Agent 听取各方理由后做出最终裁决。这类似于层级制组织决策。辩论收敛。

篮球界最会写bug的人;程序猿中打球最菜的人。 393

【C语言 算法训练】三、循环结构

以实战为线索的,C语言零基础到入门算法训练。

kkkkkkkiko的博客 561

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++解百钱百鸡:从暴力枚举到数学推导的算法优化全解析

算法是计算机科学的核心,其本质是通过一系列指令高效解决问题。暴力枚举作为最基础的算法思想,通过遍历所有可能解来寻找答案,但往往效率低下。通过数学建模与分析,可以将问题转化为约束方程组,进而应用循环优化、方程消元、整数特性(如奇偶性、整除性)等技巧,大幅降低算法的时间复杂度,从O(n²)优化至O(n)甚至O(1)。这种优化思维在解决大规模数据问题和性能敏感场景中极具价值,例如在搜索引擎、游戏AI或资源调度中处理类似的约束满足问题。本文以经典的“百钱百鸡”问题为例,结合C++编程实践,详细演示了如何从最朴素的暴

weixin_34343000的博客 336

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

算法思维训练:用C语言解构生活中的10个经典问题

本文通过C语言解析10个经典生活问题,如百钱买百鸡、斐波那契数列等,培养算法思维。涵盖穷举法、递归、逆向思维等核心算法技巧,帮助读者掌握资源分配、高效检索等实用技能,提升编程与问题解决能力。

weixin_29018815的博客 544

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 【C语言训练】求车速
下一篇: 【C语言训练】立方和不等式
Graph86
博客等级 码龄11年 201粉丝 201原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值