百钱百鸡问题 枚举 与 不定方程解法
来源:互联网 发布:凯立德端口测试工具 编辑:程序博客网 时间:2024/04/30 15:45
中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
#include <iostream>#include <cstdio>using namespace std;void exgcd(int a,int b,int &d,int &x,int &y)//扩展欧几里得算法{ if(!b) {d=a;x=1;y=0;} else { exgcd(b,a%b,d,y,x);y-=x*(a/b);}}void Cal_1(void)//简单枚举法{ for(int i=0;i<=20;i++) for(int j=0;j<=34;j++) { int z=100-(i+j); if(!(z%3)&&5*i+3*j+z/3==100)//注意计算机整除性 于是先判断能否除尽 cout<<"公鸡:"<<i<<"\t母鸡:"<<j<<"\t小鸡:"<<z<<endl; }}void Cal_2(void)//不定方程做法{ int a=7,b=4,d,x,y,X=0,Y=0; exgcd(a,b,d,x,y);//获得特解X0,Y0 x*=(100/d);y*=(100/d); X=x+4*25; Y=y-7*25; for(int t=26;X<=20&&Y<=33&&0<=Y;t++) //这里条件绕口 { int Z=100-X-Y; printf("公鸡:%d\t母鸡:%d\t小鸡:%d\n",X,Y,Z); X=x+4*t; Y=y-7*t; }}int main(){ Cal_1(); cout<<"______________________________"<<endl; Cal_2(); return 0;}
0 0
- 百钱百鸡问题 枚举 与 不定方程解法
- 二元一次不定方程的解法
- 欧几里得算法与不定方程
- N元一次不定方程解法的C#实现
- 不定方程
- hdu4596 判断一阶不定方程有解性问题
- 经典算法之不定方程问题
- 经典算法之不定方程问题
- 经典算法之不定方程问题
- 不定方程问题-经典案例“白文买百鸡“
- 不定方程(什么是不定方程)
- 不定方程(什么是不定方程)
- 由倒水问题引发出来的对于模线性方程与二元不定方程的思考
- 同余式可以这样解-同余式是特殊的等式-不定方程的巧妙解法-方程也是等式-计算器
- 【HDU 3037】大数组合取模之Lucas定理+扩展欧几里得求逆元与不定方程一类问题
- 二元一次不定方程
- 二元不定方程
- 不定方程总结
- Android之Android Studio 快捷键整理分享
- 人脸识别:特征脸(Eigenface)
- 备城门
- java可视化编程 eclipse安装windowBuilder插件
- link to cross the Great Wall to google
- 百钱百鸡问题 枚举 与 不定方程解法
- Source Insight 显示全部路径
- 【转载】Multithreaded toolkits: A failed dream? From Sun VP Graham Hamilton's Blog
- AndroidStudio的快捷方式与使用技巧
- 四季 —— 一种天文现象
- 移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
- 墨子鲁问
- Arraylist<类型> 容器
- Android之倍数提高工作效率的 Android Studio 奇技