每三个酒瓶换一瓶酒...

rr998 2011-05-17 12:15:24
每三个酒瓶换一瓶酒,编写 参数为有多少个酒瓶,最后返回能喝多少瓶酒。
...全文
3468 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
七爷 2011-05-18
  • 打赏
  • 举报
回复
有是老问题
begintransaction 2011-05-18
  • 打赏
  • 举报
回复

private int count = 22;
static void Main(string[] args)
{
Program program = new Program();
program.Count(program.count);
Console.WriteLine("一共能喝" + program.count.ToString() + "瓶水");
}
/// <summary>
/// 计算方法
/// </summary>
/// <param name="x"></param>
private void Count(int x)
{
if (x > 3)
{
int age = x / 3;//获得能换多少个水
int temp = x % 3;//获不能换余下来的瓶子
count = count + age;
Count(age + temp);
}
}
冰川711 2011-05-17
  • 打赏
  • 举报
回复
楼上的 代码都很多啊

看我写个很精简的


private int test(int sum)
{
int i = 0;
int tempNumber = 0;
while (sum + tempNumber >= 3)
{
i += sum;
sum += tempNumber;
tempNumber = sum % 3;
sum = sum / 3;
}
return i;
}
hztltgg 2011-05-17
  • 打赏
  • 举报
回复

Module Module1

Dim count As Integer = 0
Dim empty As Integer = 0

Sub Main()

Drink(100)

Console.ReadKey()

End Sub

Sub Drink(ByVal bottle As Integer)

Dim wine = bottle \ 3

empty = ((bottle Mod 3) + wine)

count += wine
Console.WriteLine("换来了{0}瓶酒", wine)

If empty < 3 Then Exit Sub

Drink(empty)

End Sub

End Module
暖枫无敌 2011-05-17
  • 打赏
  • 举报
回复

//32 剩2个
public int money = 22;
protected void Page_Load(object sender, EventArgs e)
{
int result = 0;
int pingzi = 0;
Count(ref result, ref pingzi);
Response.Write(result + "=" + pingzi);
}
public void Count(ref int result, ref int pingzi)
{
money--;
result++;
pingzi++;
if (pingzi % 3 == 0)
{
money++;
pingzi = 0;
}
if (money > 0)
Count(ref result, ref pingzi);
}
暖枫无敌 2011-05-17
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
这样做好像是对的,但是我不清楚,你怎么只用了if else就可以?是怎么想的?我想到的就是用循环 而且很复杂,这里好多回答也都写的很复杂。而这个方法只是简单的if else 想不通 呵呵
duan_dream 2011-05-17
  • 打赏
  • 举报
回复
有点像我做过的面试题:喝汽水

http://blog.csdn.net/duan_dream/archive/2010/08/12/5806080.aspx
_程序员 2011-05-17
  • 打赏
  • 举报
回复
写出结果在纸上,然后找规律喽
1 0
2 0
3 1
4 1
5 2
6 2
7 3
8 3
rr998 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 qq77452919 的回复:]
刚才没有看明白楼主的意思
应该是这样
int i = 22;
int result=0;
if (i > 2)
{
if (i % 2 == 0)
{
result = i / 2 - 1;
}
else
{
result = i / 2;
}
}
Console.WriteLine(result);
[/Quote]

嗯 这样做好像是对的,但是我不清楚,你怎么只用了if else就可以?是怎么想的?我想到的就是用循环 而且很复杂,这里好多回答也都写的很复杂。而这个方法只是简单的if else 想不通 呵呵
jdk_mo 2011-05-17
  • 打赏
  • 举报
回复

public int getDrink(int num)
{
return num / 2;
}

两个酒瓶就能喝一瓶酒。。。。
_程序员 2011-05-17
  • 打赏
  • 举报
回复
刚才没有看明白楼主的意思
应该是这样
int i = 22;
int result=0;
if (i > 2)
{
if (i % 2 == 0)
{
result = i / 2 - 1;
}
else
{
result = i / 2;
}
}
Console.WriteLine(result);
bluels01 2011-05-17
  • 打赏
  • 举报
回复
怎么都写得这么复杂
int64 2011-05-17
  • 打赏
  • 举报
回复
又见递归
_程序员 2011-05-17
  • 打赏
  • 举报
回复
static void Main(string[] args)
{
int i=23;
int result = 0;
while (i > 2)
{
result++;
i -= 2;
}
Console.WriteLine(result);
}
XNightSky 2011-05-17
  • 打赏
  • 举报
回复

//每三个空酒瓶换一瓶酒,编写 要求参数为有多少个空酒瓶,最后返回能喝多少瓶酒。
void GetWinebottleNumber(int bottleNumber)
{
int iResult = 0,iTemp = 0;
//iResult += bottleNumber;
do
{
iTemp = bottleNumber/3;
iResult += iTemp;
bottleNumber = bottleNumber % 3 + iTemp;
}
while(bottleNumber>=3);
CString strResult;
strResult.Format(_T("喝%d余%d"),iResult,bottleNumber);
MessageBox(NULL,strResult,NULL,MB_OK);
}
rr998 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 haojuntu 的回复:]
public int jiu = 0;
protected void Page_Load(object sender, EventArgs e)
{


int pz = 25;

HeJiu(ref pz, out jiu);


lblShow.Text = "最多能喝" + jiu + ",剩余的瓶子" + pz;
}

pr……
[/Quote]

用写这么复杂???你这样得出的结果是 25个空瓶最多喝8瓶余1个空瓶,而正确的应该的25个空瓶最多喝12瓶酒
haojuntu 2011-05-17
  • 打赏
  • 举报
回复
public int jiu = 0;
protected void Page_Load(object sender, EventArgs e)
{


int pz = 25;

HeJiu(ref pz, out jiu);


lblShow.Text = "最多能喝" + jiu + ",剩余的瓶子" + pz;
}

private void HeJiu(ref int pz, out int jiu)
{

jiu = 0;
while (pz >=3)
{
if (pz % 3 ==1)
{
jiu++;
pz=pz - 3;
}
else if (pz % 3 == 2)
{
jiu++;
pz = pz - 3;
}else if(pz % 3 ==0)
{
jiu++;
pz=pz - 3;
}
}


}
rr998 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 rr998 的回复:]
C# code

protected void test(int num) // num是空瓶的数量
{
int result = 0;
while (num / 3 > 0)
{
result = result + (int)num / 3;
num = (int)num / ……
[/Quote]

test(25) 结果为:12
rr998 2011-05-17
  • 打赏
  • 举报
回复

protected void test(int num) // num是空瓶的数量
{
int result = 0;
while (num / 3 > 0)
{
result = result + (int)num / 3;
num = (int)num / 3 + num % 3;
}
Response.Write(result);
}


我觉得这样就可以了,没有各位前辈的那么复杂。是不是我还有哪些没考虑到??

但题目很简单:拿空酒瓶去换酒,看最多能喝多少
加载更多回复(6)
格式(FBX)大小(3.24MB)面数(52022)顶点(75273)贴图(12)动画(无),室内,家居陈设,家居用品 ———— # .FBX三维模型详情介绍 ## 模型简介 .FBX三维模型是一个高度精细的数字模型,以FBX格式呈现,大小为3.24MB,完美还原了的外观细节。无论是瓶身的曲线、瓶口的形状,还是标签的纹理,都栩栩如生,仿佛能触摸到实物的质感。 ## 核心特征 - **面数与顶点**:拥有52022个面和75273个顶点,这使得模型的细节表现极为出色。每一处转折、每一道纹理都清晰可见,为设计师提供了丰富的创作素材。 - **贴图数量**:12张贴图的运用,进一步增强了模型的真实感。从瓶身的玻璃质感,到标签的印刷细节,都通过高精度的贴图得以完美呈现。 - **无动画设计**:专注于静态展示,适合用于需要固定场景的项目,如室内设计、家居陈设等。 ## 适用场景 - **室内设计**:在室内设计项目中,.FBX模型可以作为家居陈设的一部分,为客厅、餐厅等空间增添艺术氛围。无论是现代简约风格,还是复古奢华风格,都能找到与之匹配的模型。 - **家居用品展示**:对于家居用品品牌来说,这个模型可以用于产品目录、网站展示等,帮助消费者更直观地了解产品的外观和细节。 - **虚拟场景搭建**:在虚拟现实(VR)和增强现实(AR)项目中,.FBX模型可以作为虚拟场景中的道具,提升用户的沉浸感。 .FBX三维模型以其精细的制作、丰富的细节和广泛的适用性,成为室内设计、家居陈设等领域的理想选择。无论是专业设计师还是家居爱好者,都能从中找到创作的灵感和实用的价值。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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