黑马程序员技术交流社区

标题: 求解:一个农夫买鸡的编程面试题 [打印本页]

作者: 王小丑    时间: 2013-2-14 21:24
标题: 求解:一个农夫买鸡的编程面试题
今天一哥们问我一个java题,大概意思是,一只公鸡5块钱,一只母鸡3块钱,3只小鸡一块钱,一个农夫用100块钱买100只鸡(不许解方程),怎么实现?编写java程序。
我后来想了想给出如下的程序;
public static void main(String[] args) {
for(int a1=1;a1<20;a1++){
for(int a2=1;a2<(100-(a1*5))/3;a2++){
int a3 = (100-5*a1-3*a2)*3;
if(a1+a2+a3==100)
System.out.println(“公鸡:”+a1+”只,母鸡:”+a2+”只,小鸡:”+a3+”只”);
}
我感觉这没有问题啊,可是这哥们看了后,说不能用for循环,我晕,这不用循环怎么做???我其实是一菜鸟,又不好意思在学弟面前丢脸,求指教!急!

作者: jonn    时间: 2013-2-14 22:19
这不用for怎么实现?还真纠结,只不过 顺序可变,LZ这里顺序 公鸡,母鸡,小鸡,也可用 母鸡,公鸡,小鸡 顺序来实现
若用 小鸡,公鸡,母鸡的顺序 有点杂,这里我实现下....


对了,LZ 若你那个哥们不用for实现的,告诉我一下....{:soso_e141:}
  1.    for(int a1=3;a1<100;a+=3) {
  2.        for(int a2=1;a2<(100-a1/3)/5;a2++) {
  3.         int a3=(100-a1/3-a2*5)/3;
  4.         int temp=(100-a1/3-a2*5)%3;
  5.         if(temp==0&&a1+a2+a3==100) {
  6.        System.out.println("小鸡:"+a1+"公鸡:"+a2+"母鸡:"+a3);
  7.         }
  8.    }
复制代码

作者: 朱玉玺    时间: 2013-2-14 22:48
弱弱滴问一句,不用for能用while吗?
作者: 朱玉玺    时间: 2013-2-14 23:02
本质还是排列组合问题,从100中取出满足题目中两个条件的三个数
作者: 史政法    时间: 2013-2-15 06:22
KILL掉你那哥们,,,
作者: 王小丑    时间: 2013-2-16 20:20
史政法 发表于 2013-2-15 06:22
KILL掉你那哥们,,,

good idea;P




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2