「Java桃子问题」java编程解决猴子吃桃问题

博主:adminadmin 2022-12-04 01:12:05 85

本篇文章给大家谈谈Java桃子问题,以及java编程解决猴子吃桃问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用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

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 猴子偷桃问题

public class Myclass {

public static void main(String[] args) {

int day = 9;//表示猴子吃桃的天数

int x1 = 0 ;//表示猴子摘桃的总的个数。

int x2 = 1;//表示最后一天所剩的桃子树。

while (day 0) {

x1 = (x2 + 1) * 2;

x2 = x1;

day = day - 1;

}

System.out.println("the total is:" + x1);

}

}

java经典算法题——猴子吃桃

public class Monkey

{

public static void main(String[] args)

{

int sum=0,remain=1;

//每天吃剩的桃子加一个正好是前一天桃子的一半,每天桃子的总数就是前一天剩下桃子的数量

for(int day=9;day=1;day--)

{

sum=(remain+1)*2;

remain=sum;

System.out.println("第"+day+"天还剩"+remain+"个桃子");

}

System.out.println(sum);

}

}

Java桃子问题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java编程解决猴子吃桃问题、Java桃子问题的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-04,除非注明,否则均为首码项目网原创文章,转载请注明出处。