今日算法之_5鸡兔同笼_6猴子吃桃

5、鸡兔同笼

package com.hlj.arith.domo0005鸡兔同笼;

import org.junit.jupiter.api.Test;


/**
作者:HealerJean
题目:鸡兔同笼 和百元买百鸡一个意思
 1只鸡有1个头,2只脚,1只兔子有1个头,4只脚,若已知头的数量和脚的数量,求鸡和兔子各有多少?
解题思路:
     输入 头x 脚y ,输出鸡a 兔子b
     a+b = x
     a*2+b*4 = y
 */
public class TestMain {

    @Test
    public void start(){

        int x= 2;
        int y= 6;
        for(int a = 0;a <= x ;a++){
            for( int b = 0; b <=x-a;b++){
                if( a*2+b*4==y){
                    System.out.println("鸡的数量为:"+a+",兔的数量为:"+y);
                    return;
                }
            }
        }
        System.out.println("不存在该组合");
    }
}

6、猴子吃桃


package com.hlj.arith.domo0006猴子吃桃;


import java.util.Scanner;

/**
作者:HealerJean
题目:猴子吃桃
     某天,一只猴子摘了一堆桃子,它每天吃掉其中的一半再多吃一个,第二天吃剩余的一半再多吃一个······
     到了第N天只剩下一个桃子,问在第一天时摘了多少桃子?
解题思路:
    通过上面的我们可以知道,这道题是可以逆推的

    最后一天 剩下1
     上一天 eat(h)
     下一天 eat(h-1)
 二者关系,所以很明显可以使用递归
 eat(h)  = (eat(h-1)+1)*2

 */
public class TestMain {

    public static void main(String[] args) {
        System.out.println("请输入天数");
        int h = new Scanner(System.in).nextInt();
        System.out.println(eat(h));
    }

    /**

     */
    public static int eat(int h){
        if(h==1){
            return 1;
        }else {
            return (eat(h-1)+1)*2 ; //上一天等于下一天
        }
    }

}






感兴趣的,欢迎添加博主微信,

哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。


请下方留言吧。可与博主自由讨论哦

微信 微信公众号 支付宝
微信 微信公众号 支付宝
posted @ 2018-11-20 18:35  HealerJean  阅读(139)  评论(0编辑  收藏  举报