黑马程序员技术交流社区
标题:
我遇到的黑马测试题(持续更新中)
[打印本页]
作者:
479308606
时间:
2015-8-5 17:53
标题:
我遇到的黑马测试题(持续更新中)
package com.itheima;
import java.util.ArrayList;
import java.util.List;
/**10、 一位老农带着猫、狗、鱼过河,河边有一条船,每次老农只能带一只动物过河。
当老农不和猫狗鱼在一起时,狗会咬猫,猫会吃鱼,当老农和猫狗鱼在一起时,
则不会发生这种问题。编程解决猫狗鱼过河问题。*/
/**
2、定义函数检查当河岸边动物在无老农情况下是否产生动物损失情况;
*/
public class Test10 {
public static void main(String[] args) {
/**1、建立两个字符串集合ArrayList来存储河岸两边的动物们,
初始时,动物全在河左岸,最终目的是要将河左岸的动物全部运到河右岸;*/
List<String> left = new ArrayList<String>();
List<String> right = new ArrayList<String>();
left.add( "猫" );
left.add( "狗" );
left.add( "鱼" );
//定义使用船的次数
int useBoat = 0;
String animal = null;
// 4、如果河左岸动物为空,则循环结束。
while( !left.isEmpty() ){
useBoat++;
animal = null;
/**当船使用次数为单数时老农在河右岸,只要老农带走的动物后剩下的动物不产生损失,
即将带走的动物添加去河右岸集合中;*/
if( 1 == useBoat % 2 ){
for( int i = 0; i < left.size(); i++ ){
animal = left.remove( i );
if( lossAnimal(left) ){
left.add( animal );
continue;
}else{
break;
}
}
System.out.println( "第" + useBoat + "次, 老农用船将" + animal + "运到河右岸" );
right.add( animal );
/**船使用次数为偶数时老农在河左岸;如果河右岸动物们不会产生损失,
则老农不带动物回到左岸,否则带走动物保证河右岸动物的安全,将带走动物放回左岸。*/
}else {
while( lossAnimal(right) ){
for( int i = 0; i < right.size(); i++ ){
animal = right.remove( i );
if( lossAnimal(right) ){
right.add( animal );
continue;
}else{
break;
}
}
}
if( animal == null ){
System.out.println( "第" + useBoat + "次, 老农用船回到河左岸" );
}else{
System.out.println( "第" + useBoat + "次, 老农用船将" + animal + "运回河左岸" );
left.add( animal );
}
}
}
}
public static boolean lossAnimal( List<String> list ){
if( list.contains("猫") && list.contains("狗") ){
return true;
}else if( list.contains("猫") && list.contains("鱼") ){
return true;
}else{
return false;
}
}
}
作者:
479308606
时间:
2015-8-5 17:56
这题算是很难的了
作者:
thoris
时间:
2015-8-5 18:34
不错 写得挺易懂的~
作者:
3174918418
时间:
2015-8-5 22:24
谢谢解说
作者:
479308606
时间:
2015-8-6 18:23
3174918418 发表于 2015-8-5 22:24
谢谢解说
额。打个酱油。。为了进黑马啊
作者:
千山万水
时间:
2015-8-6 20:02
这题我也做过
作者:
javaking
时间:
2015-8-6 20:12
额。还有这个题。。。
作者:
高山高水高小波
时间:
2015-8-6 20:27
这题需要用到什么知识啊
作者:
欧杰
时间:
2015-8-6 21:49
谢谢解说
作者:
欧杰
时间:
2015-8-6 21:52
谢谢解说
作者:
时光游戏
时间:
2015-8-6 21:58
赞一个,谢谢分享
作者:
晓月残魂
时间:
2015-8-6 22:05
恩恩 三克油~~
作者:
IT老鹰
时间:
2015-8-6 22:27
赞一个,谢谢分享,楼主好人
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2