百钱白鸡问题:

公鸡5钱一只,母鸡3钱一只,小鸡1钱3只。100钱买100只鸡,问公鸡,母鸡,小鸡各几只?

问题实质是求不定方程的整数解(数论)

a+b+c=100①

5a+3b+c/3=100②

思路:穷举法(暴力搜索)

方程②可变形为15a+9b+c=300,这样做可以防止出现整数除问题]

a的可能取值范围是[0,20],b的可能取值范围是[0,33],c的可能取值范围是[0,100]

可以用三个for循环遍历abc判断①②是否都成立

优化:

当a,b确定时,c=100-a-b,c也确定了,所以可以把三重循环降为两重循环

进一步优化:

①②消元,可以消掉c,得到7a+4b = 100③

a的取值为[0,14],b=(100-7a)/4

在循环a时,判断b是否为整数,和a+b+c是否为100   即可

代码:

for (int i = 1; i <= 14; ++i) {if ((100 - 7 * i) % 4 == 0) {int y = (100 - 7 * i) / 4;int z = 100 - i - y;if (i + y + z == 100) {cout<<x<y<<z;}}

猜想:结果在max(m,n)和m*n之间

am+bn=i   ,  max(m,n)<=i<=m*n

遍历a,判断b是否为整数即可

#include<iostream>
#include<vector>
using namespace std;
int main()
{int maxa=0;int m,n;cin>>m;cin>>n;int begin=max(m,n);int end=m*n;int time=end/m; for(int i=begin;i<=end;i++){//判断i是否能由m,n构成bool flag=false;for(int j=0;j<=time;j++){if(i-j*m<0)break;if((i-j*m)%n==0){//i能构成flag=true;break; }}if(flag==false){maxa=max(maxa,i);} }cout<<maxa;
}

蓝桥杯1427: -买不到的数目(百钱百鸡问题变体)相关推荐

  1. 蓝桥杯 1427 买不到的数目 (模拟)

    题目描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买  10  颗糖 ...

  2. 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc

    多种解法求百钱百鸡问题 学 号: 0121210680225 <算法设计与分析B> 大 作 业 题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名 ...

  3. 百钱百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,100元要买100只鸡,共有几种情况

    百钱百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,100元要买100只鸡,共有几种情况 class  TestDemo { public static void main(String[] args ...

  4. java百元买百兔 穷举法_JAVA--算法与数据结构- 逢7过百钱白鸡不死神兔【1/100】...

    1.逢7过 /* * 数据范围 1- 100 * 碰到能被7整除或者包含7都过 * */ public class MeetSeven { public static void main(String ...

  5. java while求百钱买百鸡问题_java - 百钱百鸡小算法

    百钱百鸡是一个非常经典的不定方程问题,最早源于我国古代的<算经>,这是古代著名数学家张丘建首次提出的.百钱百鸡问题原文如下: 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买白鸡,问 ...

  6. C语言 古代经典算术题:百钱百鸡。用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法。

    C语言 古代经典算术题:百钱百鸡.用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法. 代码: #include <stdio.h> void main ...

  7. 公鸡5钱一只 母鸡3钱一只c语言,C# “百钱百鸡 公鸡5元一只,母鸡3元一只,小鸡一元3只,用100元买100只鸡一种做法...

    #region 百钱百鸡 Console.Write("公鸡5元一只,母鸡3元一只,小鸡一元3只,用100元买100只鸡"); Console.WriteLine("\n ...

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

    [练习] 题目要求:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱买百鸡问题"鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? ...

  9. 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡,母鸡,小鸡各多少只?

    问题分析 (1)用百钱如果只买公鸡,最多可以买20只,但题目要求买一百只,由此可知,所买公鸡的数量应该在0~20之间. (2)同理,所买母鸡的数量应该在0~33之间. (3)不妨把公鸡,母鸡和小鸡的数 ...

最新文章

  1. Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换
  2. Tiny4412 Android5.0 定制:编译生成img后如何删除原厂的apk
  3. what's the 回撤
  4. Visual Entity 教程(一)从数据库创建模型
  5. 自适应高度表格_【干货分享】Word制作表格,这几个技巧必须要学会!
  6. 浏览器还 data URI协议
  7. linux下重启mysql php nginx
  8. 带有Angular JS的Java EE 7 –第1部分
  9. 使用IDEA 1分钟搭建运行SpringMVC项目
  10. OpenCV Viz 3D虚拟空间模块
  11. php面向对象三大特性——继承
  12. IDEA合并SVN分支代码到主干
  13. 恩智浦智能车赛。摄像头处理函数。
  14. 儿童素描手绘创意设计字体 for mac
  15. SQL不同类型分组排序
  16. Shiro记住我(RememberMe)
  17. ESP32 使用 Arduino 实现 OTA 更新
  18. Python开发工具Spyder安装
  19. 手机python编程软件 turtle,安卓手机python编程软件
  20. Linux系统操作MySql常用命令

热门文章

  1. Bailian2702 密码翻译【密码】
  2. Bailian2795 金银岛【背包+贪心】
  3. HDU3784 继续xxx定律【角谷猜想】
  4. JSK-115 单独的数字(二)【位运算】
  5. HDU2516 取石子游戏【博弈】
  6. POJ NOI0105-43 质因数分解
  7. 实用的 Python —— base64
  8. DoG(Difference of Gaussian)
  9. 【剑指 offer】(十三)—— 在 O(1) 时间删除链表结点
  10. 「晓松奇谈」——矮大紧语录