* 100文钱买一百只鸡 公鸡5文钱,母鸡3文钱,小鸡3只一文钱,三种鸡必须都有。
A:public static void method_1() {
for (int x = 1; x < 20; x++) {
for (int y = 1; y < 32; y++) {
int z = 100 - x - y;
if ((z % 3 == 0) && (x * 5 + y * 3 + z / 3 == 100)) {
System.out.println("公鸡" + x + "只," + "母鸡" + y + "只," + "小鸡"
+ z + "只");
}
}
}
}
这是这道题的一种做法,但是不打易理解,有谁给我来一中好点易理解的方法解决一下。
作者: 唐杨老师 时间: 2012-8-23 21:39
你写这个方法我感觉已经是最好理解的了
公鸡4只,母鸡18只,小鸡78只
公鸡8只,母鸡11只,小鸡81只
公鸡12只,母鸡4只,小鸡84只
作者: 张扬123 时间: 2012-8-23 22:23
这是经典的java百钱百鸡。这个貌似是高中还是初中的题目,思路理清了就很简单了。
public static void method_1() {
for (int x = 1; x < 20; x++) {定义公鸡数为x,因为5文一只,所以100除以5就是20
for (int y = 1; y < 32; y++) {//此处我觉得应该是33.
int z = 100 - x - y; 这个相当于数学运算里的x+y+z=100
if ((z % 3 == 0) && (x * 5 + y * 3 + z / 3 == 100)) {小鸡一文钱三只,可视为一只三分之一文钱
System.out.println("公鸡" + x + "只," + "母鸡" + y + "只," + "小鸡"
+ z + "只");
}
}
}
}
其实这个算是很简单易懂的了。其实还有一种是三层for循环的,不知道你是否觉得比那个难懂呢?
public class Chicken {
public static void main(String args[]){
int x,y;
double z;
for(x=1;x<100;x++){
for(y=1;y<100;y++){
for(z=1;z<100;z++){
if(x+y+z==100&&5*x+3*y+z/3==100){
System.out.println(x+" "+y+" "+z);
}
}
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |