110,538
社区成员
发帖
与我相关
我的任务
分享
private int _wine = 0;
private int _cap = 0;
private int _empty = 0;
private void button1_Click(object sender, EventArgs e)
{
int money = int.Parse(textBox1.Text.Trim());
int i = money / 2;
setWine(i);
textBox2.Text = _wine.ToString();
textBox3.Text = _cap.ToString();
textBox4.Text = _empty.ToString();
}
private void setWine(int w)
{
_wine = w;
_cap = w;
_empty = w;
s();
if(_cap == 3 && _empty == 1)
{
_wine++;
_cap++;
_empty++;
s();
_wine++;
_cap = 0;
_empty = 0;
}
else if (_cap == 3 || _empty == 1)
{
_wine++;
_cap = 0;
_empty = 0;
}
}
private void s()
{
while (_cap >= 4)
{
_wine++;
_empty++;
_cap -= 3;
}
while (_empty >= 2)
{
_wine++;
_cap++;
_empty--;
}
if (_cap >= 4 || _empty >= 2)
s();
}
我觉得这店吃枣药丸_(:3ゝ∠)_
10 / 2 = 5 瓶
5个盖子 = 1 瓶 【剩余1个盖子】
5个瓶子 = 2 瓶 【剩余1个瓶子】
---
多了3瓶
剩余盖子 1+3
剩余瓶子 1+3
===============
4个盖子 = 1 瓶 【剩余0个盖子】
4个瓶子 = 2 瓶 【剩余0个瓶子】
---
多了3瓶
剩余盖子 0+3
剩余瓶子 0+3
===============
3个盖子 = 0 瓶 【剩余3个盖子】
3个瓶子 = 1 瓶 【剩余1个瓶子】
---
多了1瓶
剩余盖子 3+1
剩余瓶子 1+1
===============
4个盖子 = 1 瓶 【剩余0个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了2瓶
剩余盖子 0+2
剩余瓶子 0+2
===============
2个盖子 = 0 瓶 【剩余2个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了1瓶
剩余盖子 2+1
剩余瓶子 0+1
===================已经不够换 如果不能接到此为止 15 瓶
预先借用 1 瓶
---
多了1瓶
剩余盖子 3+1
剩余瓶子 1+1
===============
4个盖子 = 1 瓶 【剩余0个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了2瓶
剩余盖子 0+2
剩余瓶子 0+2
===============
2个盖子 = 0 瓶 【剩余2个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了1ping
剩余盖子 2+1
剩余瓶子 0+1
==================还是不够换了
预先借用 1 瓶
---
多了1瓶
剩余盖子 3+1
剩余瓶子 1+2
====刚好兑换两瓶 还掉 所以一共最多 可以喝到20瓶
按照 【瓶】 字 对齐 加下去 就是总数[/quote]
额上面的 最后哪里打错了 应该是
多了1瓶
剩余盖子 3+1
剩余瓶子 1+1
====刚好兑换两瓶 还掉 所以一共最多 可以喝到20瓶
10 / 2 = 5 瓶
5个盖子 = 1 瓶 【剩余1个盖子】
5个瓶子 = 2 瓶 【剩余1个瓶子】
---
多了3瓶
剩余盖子 1+3
剩余瓶子 1+3
===============
4个盖子 = 1 瓶 【剩余0个盖子】
4个瓶子 = 2 瓶 【剩余0个瓶子】
---
多了3瓶
剩余盖子 0+3
剩余瓶子 0+3
===============
3个盖子 = 0 瓶 【剩余3个盖子】
3个瓶子 = 1 瓶 【剩余1个瓶子】
---
多了1瓶
剩余盖子 3+1
剩余瓶子 1+1
===============
4个盖子 = 1 瓶 【剩余0个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了2瓶
剩余盖子 0+2
剩余瓶子 0+2
===============
2个盖子 = 0 瓶 【剩余2个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了1瓶
剩余盖子 2+1
剩余瓶子 0+1
===================已经不够换 如果不能接到此为止 15 瓶
预先借用 1 瓶
---
多了1瓶
剩余盖子 3+1
剩余瓶子 1+1
===============
4个盖子 = 1 瓶 【剩余0个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了2瓶
剩余盖子 0+2
剩余瓶子 0+2
===============
2个盖子 = 0 瓶 【剩余2个盖子】
2个瓶子 = 1 瓶 【剩余0个瓶子】
---
多了1ping
剩余盖子 2+1
剩余瓶子 0+1
==================还是不够换了
预先借用 1 瓶
---
多了1瓶
剩余盖子 3+1
剩余瓶子 1+2
====刚好兑换两瓶 还掉 所以一共最多 可以喝到20瓶
按照 【瓶】 字 对齐 加下去 就是总数
private int _wine = 0;
private int _cap = 0;
private int _empty = 0;
private void button1_Click(object sender, EventArgs e)
{
int money = int.Parse(textBox1.Text.Trim());
int i = money / 2;
setWine(i);
textBox2.Text = _wine.ToString();
textBox3.Text = _cap.ToString();
textBox4.Text = _empty.ToString();
_wine = 0;
_cap = 0;
_empty = 0;
}
private void setWine(int w)
{
_wine += w;
_cap += w;
_empty += w;
s();
}
private void s()
{
while (_cap >= 4)
{
_wine++;
_empty++;
_cap -= 3;
}
while (_empty >= 2)
{
_wine++;
_cap++;
_empty--;
}
if (_cap >= 4 || _empty >= 2)
s();
}
我也只有15瓶,剩下3个瓶盖和1个空瓶子
如果能借空瓶子的话,这店家就倒闭了,所以不存在先借一瓶的说法。
如果能借瓶盖的话,就是17瓶,剩下2个瓶盖和1个空瓶子。
20瓶什么的,能这么计算?const int 一瓶啤酒的钱 = 2;
const int 瓶盖换啤酒比 = 4;
const int 空瓶换啤酒比 = 2;
var 钱 = 10;
var 总共喝到的啤酒 = 0;
var 还没喝的啤酒 = 0;
var 空瓶 = 0;
var 瓶盖 = 0;
while (true)
{
//瓶盖换啤酒
if (瓶盖 >= 瓶盖换啤酒比)
{
还没喝的啤酒 += (瓶盖 / 瓶盖换啤酒比);
瓶盖 %= 瓶盖换啤酒比;
}
//空瓶换啤酒
if (空瓶 >= 空瓶换啤酒比)
{
还没喝的啤酒 += (空瓶 / 空瓶换啤酒比);
空瓶 %= 空瓶换啤酒比;
}
//花钱买啤酒
if (钱 >= 一瓶啤酒的钱)
{
还没喝的啤酒 += (钱 / 一瓶啤酒的钱);
钱 %= 一瓶啤酒的钱;
}
//喝啤酒
if (还没喝的啤酒 > 0)
{
总共喝到的啤酒 += 还没喝的啤酒;
空瓶 += 还没喝的啤酒;
瓶盖 += 还没喝的啤酒;
还没喝的啤酒 = 0;
}
else
break;
}
Console.WriteLine("总共喝了:" + 总共喝到的啤酒);
居然只有15瓶static void BuyDemo(int money)
{
int price = 2;
int cap = 4;
int empty = 2;
int totalBottle = money / price;
int nowCap = totalBottle;
int nowEmpty = totalBottle;
while (true)
{
int addCap = nowCap / cap;
int addEmpty = nowEmpty / empty;
if (addCap > 0 || addEmpty > 0)
{
int addBottle = addCap + addEmpty;
totalBottle += addBottle;
nowCap = nowCap % cap + addBottle;
nowEmpty = nowEmpty % empty + addBottle;
}
else
{
break;
}
}
Console.WriteLine(totalBottle);
}
结果居然有15瓶,难道是我写错了?