java面试题网

普通会员

115

帖子

83

回复

169

积分

楼主
发表于 2019-09-27 17:09:30 | 查看: 6114| 回复: 5

设计Java 程序,假设有 50 瓶饮料,喝完三个空瓶可以换一瓶饮料,依次类推,请问 总共喝了多少饮料。

设计Java 程序,假设有 50 瓶饮料,喝完三个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少饮料。
答案:
public class Buy { public static void main(String[] args) {
int n = 50; //初始饮料总数
int i=0; //兑换次数 

while(true){
n -= 3; //喝 3 瓶 n++; //兑换 1 瓶 i++; //兑换次数+1 if(n<3) {
System.out.println ("共喝了"+(50+i)+"瓶"); break; } } }


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1391_1_1.html


java面试题交流群:327440556

普通会员

0

帖子

1

回复

3

积分
沙发
发表于 2019-11-02 18:23:25

if条件应该改为n<2

普通会员

0

帖子

4

回复

6

积分
板凳
发表于 2019-11-13 16:00:00
提示: 该作者的回复内容被删除屏蔽

普通会员

0

帖子

4

回复

6

积分
地板
发表于 2019-11-13 16:20:39
提示: 该作者的回复内容被删除屏蔽

普通会员

0

帖子

4

回复

6

积分
4#
发表于 2019-11-13 16:50:11

/**
* @return int
* @Author Eibons
* @Date 16:07 2019/11/13
* @Description 换了多少瓶
* @Param [n]
**/
public static int fun(int n) {
//他如果剩下的小于3换不了
if (n - 3 < 0) return 0;
//否则还能换继续换
int m = n / 3;//换了多少瓶
int i = n % 3;//还剩下多少瓶
return m + fun(m + i);
}


public static void main(String[] args) {
int n = 12; //初始饮料总数
System.out.println("共喝了" + (fun(n) + n ) + "");
}

普通会员

0

帖子

4

回复

6

积分
5#
发表于 2019-11-13 16:54:08

直观一点;

public static int fun2(int n) {
int m = 0;
while (n >= 3) {
n -= 3; // 3
m++;
n++;
}
return m;
}



public static void main(String[] args) {
int n = 12; //初始饮料总数
System.out.println("共喝了" + (fun2(n) + n ) + "");

}

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018