一个人喝n瓶饮料,每喝够三瓶可以重换一瓶,问他一共可以喝多少瓶

ycscsjj 2010-05-18 09:31:47
一个人喝n瓶饮料,每喝够三瓶可以重换一瓶,问他一共可以喝多少瓶(用Java程序写出来)
...全文
908 67 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
caicai15 2010-05-26
  • 打赏
  • 举报
回复
测试过:
public static int bbb(int num)
{
int count = 0;
int n = (num / 3);
int m = (num % 3);
if (n > 0)
{
count = (num-m) + bbb(n+m);
}
else
{
count = m;
}
return count;
}
cherie1215225 2010-05-26
  • 打赏
  • 举报
回复
无语,N=1就是只喝一瓶嘛,这还问。。。[Quote=引用 7 楼 antiking 的回复:]
如果n=1呢??
[/Quote]
cherie1215225 2010-05-26
  • 打赏
  • 举报
回复
呵呵,顶。。
whut0802 2010-05-26
  • 打赏
  • 举报
回复
哈哈,小学的时候做过的奥赛题目
zuoguodang 2010-05-26
  • 打赏
  • 举报
回复
喝一瓶就喝一瓶了
kingwood2005 2010-05-26
  • 打赏
  • 举报
回复
很牛逼啊,哈哈
alextnt 2010-05-26
  • 打赏
  • 举报
回复
厉害,真是有意思
xtbzqw 2010-05-25
  • 打赏
  • 举报
回复
给你一段代码

/**
*
* @param count 饮料的瓶数
* @param m 空瓶数,开始的时候为0
* @return 返回count瓶饮料,每3瓶换一瓶,最后能喝的瓶数
*/
public static int countDrink(int count,int m){
if(count<0){
throw new RuntimeException("请输入大于0的数字");
}

int mod=count/3;//这是商
int modCount=count%3;//这是余数

count=count+(modCount+m)/3;

if(mod<=1){
count=count+mod;
}else{
count=count+countDrink(mod,modCount);
}


return count;
}
北狐狸 2010-05-25
  • 打赏
  • 举报
回复
不好意思 #54楼 多不一个接口。。。
北狐狸 2010-05-25
  • 打赏
  • 举报
回复
public class sumPing {
private int sumShu = 0;
private int emptyShu = 0;
sumPing(int firstShu) {
sumShu = firstShu;
emptyShu = firstShu;
System.out.println("get:\t" + firstShu);
System.out.print("-h-:\t" + firstShu);
System.out.println("\t-o-:\t" + firstShu);
}
void jiShuan() {
if(emptyShu > 2) {
System.out.print("-h-:\t" + emptyShu / 3);
//System.out.println("\t-o-:\t" + emptyShu / 3 +"-"+ emptyShu % 3);
System.out.println("\t-o-:\t" + (emptyShu / 3 + emptyShu % 3));
sumShu += emptyShu / 3;
emptyShu = emptyShu / 3 + emptyShu % 3;
this.jiShuan();
} else {
System.out.print("hava:\t" + this.sumShu);
System.out.println("\tempty:\t" + emptyShu);
}
}
public static void main(String[] args) {
sumPing a = new sumPing(9999);
a.jiShuan();
}
}
/*

get: 1001
-h-: 1001 -o-: 1001
-h-: 333 -o-: 335
-h-: 111 -o-: 113
-h-: 37 -o-: 39
-h-: 13 -o-: 13
-h-: 4 -o-: 5
-h-: 1 -o-: 3
-h-: 1 -o-: 1
hava: 1501 empty: 1

get: 502
-h-: 502 -o-: 502
-h-: 167 -o-: 168
-h-: 56 -o-: 56
-h-: 18 -o-: 20
-h-: 6 -o-: 8
-h-: 2 -o-: 4
-h-: 1 -o-: 2
hava: 752 empty: 2

get: 45
-h-: 45 -o-: 45
-h-: 15 -o-: 15
-h-: 5 -o-: 5
-h-: 1 -o-: 3
-h-: 1 -o-: 1
hava: 67 empty: 1

get: 4
-h-: 4 -o-: 4
-h-: 1 -o-: 2
hava: 5 empty: 2

get: 3
-h-: 3 -o-: 3
-h-: 1 -o-: 1
hava: 4 empty: 1

get: 2
-h-: 2 -o-: 2
hava: 2 empty: 2

get: 1
-h-: 1 -o-: 1
hava: 1 empty: 1

*/
interface MyInterFace {

}
class impCharSequence implements CharSequence {
public int length(){
return 0;
}
public char charAt(int index){
return 'A';
}
public CharSequence subSequence(int start, int end){
return null;
}
public String toString(){
return "empety";
}
}
hyuk2460 2010-05-25
  • 打赏
  • 举报
回复
来学习了 拿分走人
mzhoulei 2010-05-25
  • 打赏
  • 举报
回复
一共可以喝n/3+n 结果四舍五入用程序写 就更好写了吧
chenxiaomingit 2010-05-25
  • 打赏
  • 举报
回复
万一老板不借咋办啊
ericSola 2010-05-25
  • 打赏
  • 举报
回复

public int s(int n){
if(n>=3){
return n+s(n/3);
}
return n;
}


这样对不对?
北狐狸 2010-05-21
  • 打赏
  • 举报
回复
一个人喝n瓶饮料,每喝够三瓶可以重换一瓶,
问他一共可以喝多少瓶(用Java程序写出来)
答他一共可以喝n瓶(用不着Java程序写出来)
Decay_念 2010-05-21
  • 打赏
  • 举报
回复
还是.......
Decay_念 2010-05-21
  • 打赏
  • 举报
回复
逐步判断??
andy2u 2010-05-21
  • 打赏
  • 举报
回复
看来数学好还是很必要啊
zhuwen9 2010-05-20
  • 打赏
  • 举报
回复
只算大于3瓶的,如果最后剩两个空瓶可以换一瓶

public static int calculater(int n){
boolean flg = n<=3;
if(flg&&n%3==1) return 0;
if(flg&&(n%3==2||n%3==0)) return 1;
return n+ n/3 +calculater(n/3);
}
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 ycnanevol 的回复:]

引用 3 楼 bao110908 的回复:

比如 N = 22

第一次喝 22 瓶,共余 22 个空瓶,换 7 瓶,多 1 空瓶
第二次喝 7 瓶,共余 8 个空瓶,换 2 瓶,多 2 空瓶
第三次喝 2 瓶,共余 4 个空瓶,换 1 瓶,多 1 空瓶
第四次喝 1 瓶,共余 2 个空瓶,借 1 空瓶换 1 瓶
第五次喝 1 瓶,共余 1 个空瓶,还 1 空瓶


你不是说 第五次喝 1 瓶,共余 1 个空瓶,还 1 空瓶
怎么又说 剩下空瓶数量 (22 * 3) % 2 = 66 % 2 = 0
[/Quote]

因为在第四次借了一个空瓶,因此第五次喝完后的空瓶必须得还给老板,所以就剩 0 个空瓶了。

这句的标点没点好,要这样可能就明白了:

你不是说 第五次喝 1 瓶,共余 1 个空瓶还 1 空瓶
加载更多回复(47)

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧