重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
int cap,bottle,sum;//cap瓶盖个数,bottle 空瓶个数,sum统计;
成都一家集口碑和实力的网站建设服务商,拥有专业的企业建站团队和靠谱的建站技术,十载企业及个人网站建设经验 ,为成都上千多家客户提供网页设计制作,网站开发,企业网站制作建设等服务,包括成都营销型网站建设,成都品牌网站建设,同时也为不同行业的客户提供成都网站建设、成都网站设计的服务,包括成都电商型网站制作建设,装修行业网站制作建设,传统机械行业网站建设,传统农业行业网站制作建设。在成都做网站,选网站制作建设服务商就选创新互联。
cap = bottle = sum = 10000/2; //未兑换前个数
while(cap 4 || bottle 1) {
sum = sum + cap / 4; //用盖子兑换
sum = sum + bottle / 2; //用空瓶子兑换
cap = cap / 4 + cap % 4;
bottle = bottle / 2 + bottle % 2;
}
System.out.println("总共喝了 " + sum + " 瓶酒");
System.out.println("剩下 " + cap + " 个盖子和 " + bottle + " 个空瓶");
public class Test {
public static void main(String[] args) {
int drinks = 1000; // 饮料的数量
int bottle = 0; // 当前空瓶的数量
int sum = 0; // 总共喝的饮料数
// 当饮料数量大于0 或者 空瓶数量大于等于 3 就可以继续喝或者换饮料
while (drinks 0 || bottle = 3) {
if (drinks 0) { // 喝光饮料
sum = sum + drinks;
bottle = bottle + drinks;
drinks = 0;
}
if (bottle = 3) { // 空瓶换饮料
drinks = bottle / 3; // 换的饮料数
bottle = bottle % 3; // 剩下的空瓶数
}
}
System.out.println("总共喝的饮料数量为:" + sum);
}
}
总共喝的饮料数量为:1499
其实,最多可以喝50瓶酒~
public class TestBottle {
public static void main(String[] args) {
int all=drink(100);
System.out.println("最多可以喝"+all+"瓶酒。");
}
public static int drink(int bottle){
int dr=0;//初始化可以喝的酒数
while (bottle 1) {//当酒瓶大于一时,可以兑换
dr+=bottle/3;//总共兑换的酒数目=兑换酒数(he)+本轮可以兑换的酒数(num/3)
bottle=bottle/3+bottle%3;//剩下瓶子数目=本轮可以兑换的酒数(num/3)+剩下的瓶子数(bottle%3)
if(2==bottle){//当最后剩下两个瓶子时,可以借一个瓶子,凑成三个,然后兑换一瓶酒,喝完后还回瓶子
dr++;//可以喝的酒数加一
bottle=0;//剩下0个瓶子
}
}
return dr;
}
}
正确的结果:对兑了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);
}