黑马程序员技术交流社区

标题: N钱M鸡 [打印本页]

作者: 好好学习吧    时间: 2019-3-29 15:08
标题: N钱M鸡
来黑马一个多礼拜了,学了循环,判断等语句,前两天练习到一个题目,叫百钱买百鸡,鸡翁五文一只,鸡母三文一只,鸡雏三只一文,求问一百文钱买一百只鸡有哪些可能?(题目大概意思就是这样),以下是我敲的代码,不正确的地方请大佬们指出来.

public class Snap {
    public static void main(String[] args) {
        for (int x = 0; x <= 100 / 5; x++) {
            for (int y = 0; y <= 100 / 3; y++) {
                int z = 100 - x - y;
                if (z % 3 == 0 && 5 * x + 3 * y + z / 3 == 100) {
                    System.out.println("鸡翁:"+x + "," +"鸡母:"+ y + ","+"鸡雏:" + z);
                }
            }
        }
    }
}

后来学到了方法,我就想可不可以定义一个方法,用多少钱买多少只鸡通过键盘录入的方法来实现,然后根据情况判断有多少种方法,或者一种情况都没有就输出输入数据有误,然后我就敲出了如下代码,小白所写,勿喷,有错请指出;
import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你准备花的钱数");
        int a = sc.nextInt();
        System.out.println("请输入你准备买的鸡的只数");
        int b = sc.nextInt();
        getCount(a,b);
    }
    public static int[] getCount(int a ,int b){
        int[] arr = new int[3];
        int x=arr[0];//鸡翁
        int y=arr[1];//鸡母
        int z=arr[2];//鸡雏
        for(x=0;x<=a/5;x++){
            for(y=0;y<=a/3;y++){
                z=b-x-y;
                if(z%3==0&&5*x+3*y+z/3==a){
                    System.out.println(x+","+y+","+z);
                }
                if(x+y+z!=b&&5*x+3*y+z/3!=a){
                    System.out.println("输入数据有误");
                }
            }
            arr[0]=x;
            arr[1]=y;
            arr[2]=z;
        }
        return arr;
    }
}
虽然敲出了代码,我自己可能觉得没毛病,如果有错还是希望大佬们指出来,毕竟人不能太膨胀了,哈哈哈哈..........

敲代码的过程可能是枯燥的,但是当你解决一个BUG或者说敲出一段代码后,还是很有成就感的.感谢黑马给了我这样一个机会,希望以后共同进步!(突然发现,因为敲代码需要,我把标点符号改成了英文模式下的了,所以这段文字中的所有标点符号全是半角的)





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