「猴子分桃子java」猴子与桃子
今天给各位分享猴子分桃子java的知识,其中也会对猴子与桃子进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、用JAVA,递归,写猴子分桃问题
- 2、用java猴子吃桃子问题,第一天吃掉所有桃子的一半多一个,第二天又吃掉剩下桃子的一
- 3、java海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个
- 4、猴子第一天摘下若干个桃子,当即吃了一半java
- 5、猴子分桃(java问题)
用JAVA,递归,写猴子分桃问题
//楼上几位的有逻辑问题
public
class
Dg
{
static
int
ts=0;//桃子总数
int
fs=1;//记录分的次数
static
int
hs=5;//猴子数...
int
tsscope=5000;//桃子数的取值范围,范转太大容易溢出.
public
int
fT(int
t){
if(t==tsscope){
//当桃子数到了最大的取值范围时取消递补归
System.out.println("结束");
return
0;
}
else{
if((t-1)%hs==0
fs=hs){
if(fs==hs)
{
System.out.println("桃子数
=
"+ts
+"
时满足分桃条件");
}
fs+=1;
return
fT((t-1)/5*4);//
返回猴子拿走一份后的剩下的总数
}
else
{
//没满足条件
fs=1;//分的次数重置为1
return
fT(ts+=1);//桃子数加+1
}
}
}
public
static
void
main(String[]
args)
{
new
Dg().fT(0);
}
}
用java猴子吃桃子问题,第一天吃掉所有桃子的一半多一个,第二天又吃掉剩下桃子的一
猴子吃桃问题.猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第十天早上在想吃时,就只剩一个桃子了.求第一天共摘了多少个桃子?
public class 猴子吃桃 {
static int total(int day){
if(day == 10){
return 1;
}
else{
return (total(day+1)+1)*2;
}
}
public static void main(String[] args)
{
System.out.println(total(1));
}
}
采取倒推法做:
设第九天剩下n个,应该吃掉 (n/2)+1 则 n-(n/2)-1=1 解得 n=4 第九天剩下4个;
同理设第8天剩下n个,应该吃掉 (n/2)+1 则 n-(n/2)-1=4,解得 n=10 第八天剩下10个
以此类推 第七天剩下 (10+1)x2=22个,第六天剩下 (22+1)x2=46个,第五天剩下(46+1)x2=94个,第四天剩下 (94+1)x2=190个,第三天剩下(190+1)x2=382
第2天剩下 (382+1)x2=766,
第一天有 (766+1)x2=1534个桃子.
java海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个
public class MonkeyTest {
public static void main(String[] args) {
int sum=0;
int cnt=0;
outer:
for(int i=6;i10000;i++){
sum=i;
cnt=0;
for(int j=0;j5;j++){
if(sum%5==1){
sum=sum-((sum/5)+1);
cnt++;
if(cnt==5){
System.out.println(i);
break outer;
}
}else{
break;
}
}
}
}
}
/*
run:
3121
成功生成(总时间:0 秒)
分析:
624*5+1=3121
499*5+1=2497
399*5+1=1997
319*5+1=1597
255*5+1=1276
*/
猴子第一天摘下若干个桃子,当即吃了一半java
public class Caculate {
public int getTotal(int n){
if(n20) return 0;
if(n1) return 0;
if(n==20) return 1;
return 2*(getTotal(n+1) + 1);
}
public static void main(String args[]){
Caculate caculate = new Caculate ();
System.out.println("total:" + caculate.getTotal(1));
}
}
猴子分桃(java问题)
public static void main(String[] args) {
int sum2; //用来进行逻辑运算的桃子总数
int sum1 = 6; //实际的桃子总数
int count; //分桃子次数(控制内层循环)
int index; //分桃子次数(符合分桃方案的次数)
boolean flag = true; //控制外层循环
while(flag){
index = 0; //初始化分桃子的次数为0
count = 0; //初始化为第一个猴子开始分桃子
sum2 = sum1; //初始化逻辑运算的桃子总数为实际的桃子总数,因为此变量用于计算,所以值会改变,为了不影响实际的桃子总数,所以用此变量代替!
while(count 5){ //猴子开是分桃子了!
if(sum2%5 == 1){ //如果桃子总数除以5余1说明此桃子总数符合分桃方案(sum2%5 == 1)
sum2 -= 1; //因为桃子被猴子扔掉一个,所以要减1
sum2 -= sum2/5; //又因为桃子被平均分为了5份并且被猴子拿走了1份,所以要减1/5
index++; //如果符合分桃方案就将计数器加1
}
if(index == 5){ //如果计数器等于5,也就是桃子的总数在符合分桃方案(sum2%5 == 1)的前提下分可5次的话!说明此桃子总数是符合条件的最小整数!
System.out.println("最少有 " + sum1 + " 个桃子!");
flag = false;//关闭外层循环;
break; //跳出内层循环;
}
count++; //5个猴子分桃子嘛!第一个分完了,当然该轮到第二个了!!所以要递增!
}
sum1 += 5; //桃子的总数只有每次递增5才可以符合分桃方案(sum2%5 == 1)!
}
}
不好意思啊,由于刚才比较赶时间,没好好写!
这回你再看看!! 如果还有哪里不清楚的话就问我好了!!
猴子分桃子java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于猴子与桃子、猴子分桃子java的信息别忘了在本站进行查找喔。