面试笔记---逻辑题:倒水问题
2018-06-18 01:34:27来源:未知 阅读 ()
把面试的逻辑题的倒水问题计算了一下最优解的问题:
/** * 算法及原理 * */ public int[] rsa(int[] data) { /** * 逻辑题:有两个水杯,一个是aL一个是bL,水可以随便用,怎么得到cL * 即用满进满出的原则,要么是aL满倒向bL,要么bL满倒向aL循环得出 * 即 满足:ax-by=c/bx-ay=c * 关于每个水杯满了的次数x/y默认设为不大于100 * */ int a=data[0]; int b=data[1]; int c=data[2]; int sum=0; for(int x=0;x<100;x++) { for(int y=0;y<100;y++) { if(a*x-b*y==c) { sum=x+y; //返回a,b,x,y,sum int [] datas= {a,b,x,y,sum}; return datas; } } } return data; } /** * 调用方法, * 因为有两种可能,即调用两次,第二次把a.b顺序交换赋值 * */ public void use(int[] data) { int a=data[0]; int b=data[1]; int c=data[2]; //交换后调用 int[] data1= {a,b,c}; int[] data2= {b,a,c}; //获取返回的数组 int[] s1 =rsa(data1); int[] s2=rsa(data2); //判断总步数,寻找最优解 if(s1[4]<s2[4]) { String message=s1[0]+"升倒"+s1[1]+"升:x="+s1[2]+",y="+s1[3]; System.out.println(message); }else { String message=s2[0]+"升倒"+s2[1]+"升:x="+s2[2]+",y="+s2[3]; System.out.println(message); } } }
测试例子:
public static void main(String[] args) { dsUtils test=new dsUtils(); //传递两个杯子的容量,以及要取的容量 int[] data= {11,7,2}; test.use(data); }
测试结果:

如果不需要求两种方式中最优解的话,可以不用这么麻烦:
public class dsUtil { /** * 算法及原理 * */ public void rsa(int a,int b,int c) { /** * 逻辑题:有两个水杯,一个是aL一个是bL,水可以随便用,怎么得到cL * 即用满进满出的原则,要么是aL满倒向bL,要么bL满倒向aL循环得出 * 即 满足:ax-by=c/bx-ay=c * 关于每个水杯满了的次数x/y默认设为不大于100 * */ for(int x=0;x<100;x++) { for(int y=0;y<100;y++) { if(a*x-b*y==c) { String message=a+"升倒"+b+"升:x="+x+",y="+y; System.out.println(message); return; } } } } /** * 调用方法, * 因为有两种可能,即调用两次,第二次把a.b顺序交换赋值 * */ public void use(int a,int b,int c) { rsa(a,b,c); rsa(b,a,c); } }
测试结果:

参考:https://www.cnblogs.com/j-star/p/7127190.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- JVM常见面试题解析 2020-06-11
- Spring WebFlux 学习笔记 - (一) 前传:学习Java 8 Stream Ap 2020-06-11
- Java笔记:集合 2020-06-10
- Java基础语法菜鸟教程笔记 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
