Java经典题目----百钱买百鸡

package com.sxt.pratice;
/*
 * 百钱买白鸡
 * :100文买100只鸡
 *  公鸡5文1只,母鸡3文一只,雏鸡1文3只,100文买100只鸡,每个鸡的品种都得有,总共有几种买法
 *  
 *  int money = 100;
 *  int total = 100;
 *   x+y+z = 100  总数相加为100
 *   5x+3y+z/3 = 100; 总钱数为100

 *   x = 20  公鸡
 *   y = 33; 母鸡
 *   z = 300; 小鸡
 *  
 * 
 */

public class 白钱买百鸡 {
     public static void main(String[] args) { 
         int num = 100;
         int mon = 100;
         int count = 0;
         //公鸡数量
         
         System.out.println("方法一(低效率)------------------------------------------");
         for(int x=0;x<=num;x++){
            //母鸡数量
             for(int y=0;y<=num;y++){
                 count++;
                //小鸡数量
                 int z = num-x-y;
                 if(x>0&&z%3 == 0 && x*5+y*3+z/3 == 100){
                    System.out.println("公鸡:"+x+" 母鸡:"+y+" 小鸡:"+z);
                 }
                  
             } 
         }
         System.out.println("一共买了"+count+"次");
         System.out.println();
         System.out.println("方法二(高效率)------------------------------------------");
         int count1 = 0;//统计买的次数
            //公鸡
            for(int x = 1;x<=20;x++){
                //母鸡
                for(int y= 1;y<=33;y++){
                    //小鸡
                    int z = 100-x-y;
                        count1++;
                        //同时满足总钱数以及总个数以及小鸡的数目对三取余等于0
                        if(5*x+3*y+z/3==100 && z%3==0 ){
                            System.out.println("公鸡:"+x+" 母鸡:"+y+"  小鸡:"+z);
                    }
                }
            }
            
            System.out.println(count1);
     }
}
 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值