该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我请教了一下同学。。又做了一遍,还能运行出来,把程序打出来大家参考一下。。。。。。
package cn.zjvcc;
/*
* A、B、C、D、E五个人在某天夜里
* 合伙去捕鱼,到第二天凌晨时都疲惫
* 不堪,于是各自找地方睡觉。日上三杆
* ,A第一个醒来,他将鱼分为五份,把
* 多余的一条鱼扔掉,拿走自己的一份。
* B第二个醒来,也将鱼分为五份,把多余的
* 一条鱼扔掉,保持走自己的一份。 C、D、E依次醒来,
* 也按同样的方法拿走鱼。问他们合伙
* 至少捕了多少条鱼?
*/
public class Fish {
public static void main(String[] arge) {
int i = 0;
do {
i++;
if (f(5, i * 5 + 1)) {
System.out.println(i * 5 + 1);
System.exit(0);
}
}
while (true);
}
public static boolean f(int a, int b) {
if ((b - 1) % 5 == 0) {
if (a == 1)
return true;
else
return f(a - 1, (b - 1) / 5 * 4);
}
return false;
}
}
package cn.zjvcc;
/*
* 公安人员审问四名窃贼嫌疑犯。
* 这四人当中仅有一名是窃贼,这四人中每
* 人要么是诚实的,要么总是说谎的。在回
* 答公安人员的问题中:甲说:乙没有偷,
* 是丁偷的;乙说:我没有偷,是丙便的;
* 丙说:甲没有偷,是乙偷的;丁说:我没有偷
* 。据这四人的答话判断谁是盗窃者。
*/
public class Lies {
public static void main(String args[]){
whoTellLie();
}
//谁在说谎 小偷==1
private static void whoTellLie(){
for(int a=0;a<=1;a++)for(int b=0;b<=1;b++)
for(int c=0;c<=1;c++)
for(int d=0;d<=1;d++){
if(a+b+c+d==1&&(b+d==1)&&(b+c==1)&&
(a+b==1)){
System.out.print("a="+a);
System.out.print("b="+b);
System.out.print("c="+c);
System.out.print("d="+d);
}
}
}
}
package cn.zjvcc;
/*
* 三对情侣参加婚礼,三个新郞
* 为A、B、C,三个新娘为X、Y、Z
* 。有人不知道谁和谁结婚,于是
* 询问了六位新人中的三位,但听到的
* 回答是这样的:A说他将和X结婚;X
* 说她的未婚夫是C;C说他将和Z结婚。
* 这人听后知道他们在开玩笑,全是假话
* 。请编程找出谁将和谁结婚。
*/
public class Marry {
public static void main(String[] args) {
for (int x = 1; x <= 3; x++)
for (int y = 1; y <= 3; y++)
for (int z = 1; z <= 3; z++)
if (x != 1 && x != 3 && z != 3 && x != y && y != z&& z != x) {
System.out.printf("X will marry to %c.\n ", 'A' + x - 1);
System.out.printf("Y will marry to %c.\n ", 'A' + y - 1);
System.out.printf("Z will marry to %c.\n ", 'A' + z - 1);
}
}
}