算法基础——1.1暴力破解法(鸡兔同笼、韩信点兵问题)
2014-04-28 14:13
260 查看
利用计算机的优势:计算速度
采用最笨的计算方法
– 直接枚举每种可能的情况
– 情况数不是天文数字即可
– 要做到不遗漏
– 最好能不重复
例子1.鸡兔同笼问题:鸡兔同笼,头则50,脚则120。 问:鸡兔各几何。
例子2.韩信点兵:
采用最笨的计算方法
– 直接枚举每种可能的情况
– 情况数不是天文数字即可
– 要做到不遗漏
– 最好能不重复
例子1.鸡兔同笼问题:鸡兔同笼,头则50,脚则120。 问:鸡兔各几何。
/* 鸡兔问题 鸡兔同笼,头则50,脚则120。 问:鸡兔各几何。 */ public class T1 { public static void main(String[] args) { int HEAD = 50; int FOOT = 120; // x: 鸡数, y: 兔数 for(int x=0; x<HEAD; x++){ int y = HEAD - x; if(x * 2 + y * 4 == FOOT){ System.out.println("x=" + x + ",y=" + y); break; } } } }
例子2.韩信点兵:
/* 韩信点兵 今有士卒,千余人许。 5人为伍,则余1 7人为伍,则余2 8人为伍,则余3 试求确数 */ public class T2 { public static void main(String[] args) { for(int i=1000; i<2000; i++){ if(i%5==1 && i%7==2 && i%8==3) System.out.println(i); } } }3练习:
public class HomeWork1 { /* 马与瓦 总共有 100 匹马 总共驮有 100 块瓦(古代的瓦,很大,很重) 每匹大马每次能驮 3 块瓦 每匹小马每次能驮 2 块瓦 小马驹每次 2个马驹驮 1块瓦 求各种马的数目 提示:可能是多解的,要列出所有的解。*/ public static void main(String[] args) { int big , middle , small; for(big = 1; big < 100; ++big) for(middle = 1; middle < 100; ++middle) { small = 100 - big - middle ; if(small%2 == 0 && (big * 3 + middle * 2 + small * 0.5) == 100) System.out.println("大马:"+big+" \t小马:"+middle+" \t小马驹:"+small); } } }
相关文章推荐
- 算法竞赛一些基础问题的复习(java) 1(大水仙花数、韩信点兵、倒三角、排列)
- POJ 算法基础 Assignment: 编程作业—枚举 编程题#1: 画家问题
- JAVA代码—算法基础:四平方定理问题
- 韩信点兵问题的简单算法(downmoon)
- 【算法设计与分析基础】8、穷举 旅行商问题
- JAVA代码—算法基础:子数组的最大累加和问题
- 算法基础之python实现贪心算法中的雷达安装问题和二分法中誊抄书籍问题
- 算法基础——2.7练习(通信编码、格式检查问题)
- 算法基础:整数拆分问题(Golang实现)
- 分组Top N问题(一) - java实现Top n算法基础
- 算法基础:周期串问题
- 深度优先搜索1-寻路问题(算法基础 第6周)
- 韩信点兵问题算法
- 算法第四版1.1基础编程模型1.1.1至1.1.13
- 算法第4版1.1基础编程模型1.1.14和15
- 1.1算法入门之百钱白鸡问题
- 基础算法——递归——xyoj 1353半数单集问题
- 算法-第四版-1.1 基础编程模型-习题索引汇总
- 【学习笔记】<算法导论>基础知识1.1
- 【基础算法】铲雪车问题(BZOJ1190)