今日算法之_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 ; //上一天等于下一天
}
}
}
感兴趣的,欢迎添加博主微信,
哈,博主很乐意和各路好友交流,如果满意,请打赏博主任意金额,感兴趣的在微信转账的时候,备注您的微信或者其他联系方式。添加博主微信哦。
请下方留言吧。可与博主自由讨论哦
微信 | 微信公众号 | 支付宝 |
---|---|---|
![]() |
![]() |
![]() |