蓝桥杯1427: -买不到的数目(百钱百鸡问题变体)
百钱白鸡问题:
公鸡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: -买不到的数目(百钱百鸡问题变体)相关推荐
- 蓝桥杯 1427 买不到的数目 (模拟)
题目描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖 ...
- 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc
多种解法求百钱百鸡问题 学 号: 0121210680225 <算法设计与分析B> 大 作 业 题 目多种解法求百钱百鸡问题学 院计算机科学与技术学院专 业软件工程班 级Sy1201姓 名 ...
- 百钱百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,100元要买100只鸡,共有几种情况
百钱百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,100元要买100只鸡,共有几种情况 class TestDemo { public static void main(String[] args ...
- java百元买百兔 穷举法_JAVA--算法与数据结构- 逢7过百钱白鸡不死神兔【1/100】...
1.逢7过 /* * 数据范围 1- 100 * 碰到能被7整除或者包含7都过 * */ public class MeetSeven { public static void main(String ...
- java while求百钱买百鸡问题_java - 百钱百鸡小算法
百钱百鸡是一个非常经典的不定方程问题,最早源于我国古代的<算经>,这是古代著名数学家张丘建首次提出的.百钱百鸡问题原文如下: 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买白鸡,问 ...
- C语言 古代经典算术题:百钱百鸡。用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法。
C语言 古代经典算术题:百钱百鸡.用100元钱买100只鸡,已知公鸡每只5元,母鸡每只3元,小鸡一元3只,求出所有的卖法. 代码: #include <stdio.h> void main ...
- 公鸡5钱一只 母鸡3钱一只c语言,C# “百钱百鸡 公鸡5元一只,母鸡3元一只,小鸡一元3只,用100元买100只鸡一种做法...
#region 百钱百鸡 Console.Write("公鸡5元一只,母鸡3元一只,小鸡一元3只,用100元买100只鸡"); Console.WriteLine("\n ...
- 6.17 C语言练习(百钱百鸡问题:中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?)
[练习] 题目要求:中国古代数学家张丘建在他的<算经>中提出了著名的"百钱买百鸡问题"鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? ...
- 中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱百鸡问题”:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡,母鸡,小鸡各多少只?
问题分析 (1)用百钱如果只买公鸡,最多可以买20只,但题目要求买一百只,由此可知,所买公鸡的数量应该在0~20之间. (2)同理,所买母鸡的数量应该在0~33之间. (3)不妨把公鸡,母鸡和小鸡的数 ...
最新文章
- Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换
- Tiny4412 Android5.0 定制:编译生成img后如何删除原厂的apk
- what's the 回撤
- Visual Entity 教程(一)从数据库创建模型
- 自适应高度表格_【干货分享】Word制作表格,这几个技巧必须要学会!
- 浏览器还 data URI协议
- linux下重启mysql php nginx
- 带有Angular JS的Java EE 7 –第1部分
- 使用IDEA 1分钟搭建运行SpringMVC项目
- OpenCV Viz 3D虚拟空间模块
- php面向对象三大特性——继承
- IDEA合并SVN分支代码到主干
- 恩智浦智能车赛。摄像头处理函数。
- 儿童素描手绘创意设计字体 for mac
- SQL不同类型分组排序
- Shiro记住我(RememberMe)
- ESP32 使用 Arduino 实现 OTA 更新
- Python开发工具Spyder安装
- 手机python编程软件 turtle,安卓手机python编程软件
- Linux系统操作MySql常用命令