网站建设资讯

NEWS

网站建设资讯

java瓶子代码 空瓶子代码

Java代码怎么写:有20块钱买汽水,1块一瓶,三盖子换一瓶,两空瓶换一瓶子,共能买多少汽水?

正确的结果:对兑了17次,共换了93个瓶子,第18次对兑时余下1个空瓶,2个瓶盖。

创新互联专注于清流企业网站建设,自适应网站建设,商城网站建设。清流网站建设公司,为清流等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

递归模型楼上“lzs丶灬 ”同志是正确的,但存在逻辑错误。我帮他修正如下:

public static int test(int sum, int pingzi, int gaizi){

if (pingzi  2  gaizi  3)

{

return sum;

}

int newPingzi = pingzi / 2;

int newGaizi = gaizi / 3;

sum += newPingzi;

sum += newGaizi;

pingzi = newPingzi + newGaizi + pingzi % 2;

gaizi = newGaizi + newPingzi + gaizi % 3;

return test(sum, pingzi, gaizi);

}

一个瓶子可装5升水另一个可装7升水,用Java编程怎么得到6升

没具体做过,但我的想法是,首先先弄明白如何得到6升水。

1.将5升瓶子(A)装满水,倒进7升的瓶子(B) (现在B差2L水就满了)

2.重复1,只能倒进去2L,B就满了。B中的水倒掉,再把A中剩余的水倒进B(现在B差4L满)。

3.重复1,只能倒进去4L,B就满了。B中的水倒掉,再把A中剩余的水倒进B(现在B差6L满)。

4.重复1,现在能把全部的水(5L)倒进B中。加上3步骤B里的1L水,现在B里面就有6L水了。

那么,就可以利用栈(Stack)来进行操作。

A栈,长度为5;B栈,长度为7。

A、B栈中数据元素的类型皆为布尔类型。

初始化的时候,A中元素全为true,B中为false。

首先设定一个死循环。

然后在这个死循环中循环A栈,如果A中元素为true,则将B中对应位置的元素赋为true;

循环的时候,如果到A的末尾了,那么再从头开始循环A; 如果到B的末尾了,那么同样,也要从头开始对B赋值。

而当第二次循环到A中第二个元素的时候,B中对应的为最后一个元素(7),那么在循环到第三个元素之前,要将B中所有的元素设为false。下面同理,就是每当B栈满的时候,要将其设为空(就是所有元素设为false)。

然后,每次循环完A之后,检查一下B,如果B中有六个元素为true,而有一个为false,那么就得到了6L水。 然后break,跳出死循环,就OK了。

一元钱一瓶汽水,两个空瓶能换一瓶汽水,三个瓶盖能换一瓶汽水,问20元一共能喝多少瓶。java代码怎么写?

package 递归;

import java.util.Scanner;

public class 汽水 {

public static void main(String[] args) {

Scanner scan=new Scanner(System.in);

System.out.println("请输入您购买汽水所花的钱");

int money=scan.nextInt();

System.out.println("20元一共能喝"+cal(money,money,money)+"瓶");

}

/**

*

* @param sum 总瓶数

* @param cap 瓶盖数

* @param bottle 瓶子数

* @return

*/

public static int cal(int sum,int cap,int bottle){

int add=cap/3+bottle/2;//每次循环所增加的汽水

sum=sum+add;

System.out.println(sum);

cap=cap%3+add;//每次循环后的瓶盖子

System.out.println(cap);

bottle=bottle%2+add;//每次循环后的瓶子

System.out.println(bottle);

System.out.println("-----------------");

if(cap3bottle2){//递归结束的条件

return sum;

}else{

return cal(sum,cap,bottle);//递归调用

}

}

}

20元一共能喝113瓶

关于一个啤酒瓶子的JAVA函数调用,我有点看不懂,麻烦各位帮解答下!

public static int getbeer(int num)

{

int sum = num; //初始化总数

while(num=2) //瓶数大于等于2时,可以换

{

sum=sum+num/2; //新一次更换后总瓶数为更换前瓶数与瓶数/2的和

if(num%2==1) //这是为了保证不会因为奇数瓶摩2少掉一个空瓶

sum++;

num=num/2;

}

return sum; //这就是结果

}

你说的10瓶啤酒的问题,结果不会是15瓶,而是19瓶,因为可以继续换


名称栏目:java瓶子代码 空瓶子代码
标题来源:http://njwzjz.com/article/doceegi.html