题解 | #百钱买百鸡问题#

百钱买百鸡问题

http://www.nowcoder.com/practice/74c493f094304ea2bda37d0dc40dc85b

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int cnt_male=0;
        int cnt_female=0;
        int cnt_child=0;
        while (in.hasNextInt()) {
            cnt_child=in.nextInt();
            for(int i=0;i<34;i++){
                cnt_child=i*3;//鸡雏只能是3的倍数个
                for(int j=0;j<100;j++){
                    cnt_male=j;//公鸡个数
                    cnt_female=100-cnt_child-cnt_male;//母鸡个数
                    if(cnt_female<0){
                        continue;
                    }
                    if(5*cnt_male+3*cnt_female+i==100){
                        System.out.println(cnt_male+" "+cnt_female+" "+cnt_child);
                    }
                }
            }

        }
    }
}

先上代码.由于鸡雏只有是3的整数倍的时候才能确保结算价格是整数,故第一层循环遍历鸡雏个数.第二层循环遍历公鸡或者母鸡个数都可以,反正有总数100这个约束.此处要避免出现另一种鸡为负数的情况,使用continue跳入下次循环加速求解.最后把筛选出的结果输出.

全部评论

相关推荐

点赞 评论 收藏
转发
3 收藏 评论
分享
牛客网
牛客企业服务