糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > JAVA 递归算法- 椰子汁5元一瓶 4个盖子可以换一瓶椰子汁 3个空瓶可以换一瓶椰子汁

JAVA 递归算法- 椰子汁5元一瓶 4个盖子可以换一瓶椰子汁 3个空瓶可以换一瓶椰子汁

时间:2024-02-06 06:14:51

相关推荐

JAVA 递归算法- 椰子汁5元一瓶 4个盖子可以换一瓶椰子汁 3个空瓶可以换一瓶椰子汁

目录

原题展示

做表理思路

当初始汽水为3瓶时

当初始汽水为4瓶时

分析提取数据逻辑

瓶子的个数的计算

盖子的个数的计算

汽水数目的计算

取模运算

源代码

成功截图

原题展示

椰子汁5元一瓶,4个盖子可以换一瓶椰子汁,3个空瓶可以换一瓶椰子汁,那么 100 块钱可以喝多少瓶椰子汁,剩下瓶盖和空瓶各多少?

做表理思路

当初始汽水为3瓶时

具体就是

当初始汽水为4瓶时

具体就是

分析提取数据逻辑

相信经过上面4个表格的运算逻辑已经十分明显了!!

接下来我们将逻辑好好理理就可以写代码了,其中我们先算瓶子个数

瓶子的个数的计算

先用瓶子的当前数量除以3,再加上瓶子的当前数量模3,再加上盖子的当前数量除以4。

为什么要这样写呢?

很简单因为当瓶子数量改变的时候,盖子数量也会改变,所以才有了最后那一句盖子的数量除以4如果这个值大于1说明这又可以换水了,如果可以换水也就是说瓶子的数目也会再次改变了!

所以我们需要加上后面那一句这很重要!

再往前面分析一下,为什么要用当前瓶子的数目模3呢?

答案很简单为了算出当前瓶子在兑换汽水后我们还剩下的瓶子数目,因为这是一个动态变化的过程呀!

其实这边也可以写为当前的汽水数目去模我们的3,结果都是一样的!

再往前为什么要用瓶子数除以3呢?

相信这个都很好理解,就是算出当前瓶子的个数能够换取多少瓶汽水,。

OK总理一下逻辑。

瓶子的当前个数=瓶子能够换取的汽水个数+瓶子剩余的个数再+盖子能够换取汽水的数目。

int tempcap=cap/4;int tempbottle=bottle/3;bottle=tempbottle+tempcap+drink%3;

由此上面的逻辑式子,就一目了然了

盖子的个数的计算

以此类推盖子的数目也可以算出来

int tempcap=cap/4;int tempbottle=bottle/3;cap=tempcap+tempbottle+drink%4;

汽水数目的计算

最后就是当前汽水的数目这个更好理解

当前汽水的数目=原来汽水的数目+瓶子能够换取的汽水数目+盖子能换取的汽水数目

int tempcap=cap/4;int tempbottle=bottle/3;drink=drink+tempcap+tempbottle;

取模运算

最后补充一点就是取模运算,请问2模3结果是多少?

答案是2,很多人以为答案是一这是一个易错点,容易自己把自己给搞糊涂

我们还是先写出平常数据

假如3/2,模是1;(减去2的倍数2,剩下1)

假如5/2,模是1;(减去2的倍数4,剩下1)

假如8/3,模是2; (减去3的倍数6,剩下2)

那么我们就可以总结出来,2%3的过程是(2减去3的0倍,剩下2)故答案是2

源代码

import java.util.Scanner;public class Main {public static void main(String[] args){Scanner input=new Scanner(System.in);System.out.println("请输入价钱");int initsum=input.nextInt()/5;getDrink(initsum,initsum,initsum);}public static int getDrink(int drink,int cap,int bottle){if(cap<4&&bottle<3){System.out.printf("结果是如下:\n剩余盖子:%d 剩余瓶子:%d 剩余汽水:%d\n",cap,bottle,drink);return 0;}else {int tempcap=cap/4;int tempbottle=bottle/3;cap=tempcap+tempbottle+cap%4;bottle=tempbottle+tempcap+bottle%3;//这样写也可以//cap=tempcap+tempbottle+drink%4; //bottle=tempbottle+tempcap+drink%3;drink=drink+tempcap+tempbottle;System.out.printf("当前盖子:%d 当前瓶子:%d 当前汽水:%d\n",cap,bottle,drink);return getDrink(drink,cap,bottle);}}}

成功截图

JAVA 递归算法- 椰子汁5元一瓶 4个盖子可以换一瓶椰子汁 3个空瓶可以换一瓶椰子汁 那么 100 块钱可以喝多少瓶椰子汁 剩下瓶盖和空瓶各多少?

如果觉得《JAVA 递归算法- 椰子汁5元一瓶 4个盖子可以换一瓶椰子汁 3个空瓶可以换一瓶椰子汁》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。