某人有15个空啤酒瓶,已知4个啤酒瓶可以换一瓶啤酒,问一共可以换多少瓶瓶酒。
答案是5瓶,因为最后剩余三个可以找老板借一个空瓶,等喝完后还给老板。
前天的C#课上,想到用C#编写。
实现如下。
//design by superdont
//lilizong[at]gmail
using System;
class Doloop
{
public static void Main()
{
int[] a =new int[10];
//用于存放当前的空酒瓶个数
int[] b = new int[10];
//用于存放可以换取的酒的瓶数
int[] c = new int[10];
//用于存放每次换取后,剩余的不足4个的酒瓶个数
a[0] = 15;
int sum = 0;
int i;
for (i = 0; i < 10; i++)
{
b[i] = a[i] / 4;
c[i] = a[i] % 4;
a[i + 1] = c[i] + b[i];
if (a[i + 1] <= 3)
{
if (a[i + 1] == 3)
b[i+1] = 1;
//如果最后剩余三个,可以找老板借一个空瓶,多换一瓶啤酒
break;
}
}
for (i = 0; i < 10; i++)
{
Console.Write(" {0}", a[i]);
}
Console.WriteLine();
for (i = 0; i < 10; i++)
Console.Write(" {0}", b[i]);
Console.WriteLine();
for (i = 0; i < 10; i++)
Console.Write(" {0}", c[i]);
for (i = 0; i < 10; i++)
sum = sum + b[i];
//求各次累计的和,即为总计可以换取的瓶数
Console.WriteLine();
Console.WriteLine("可以换取的啤酒评述为:");
Console.WriteLine(sum);

}



}

本文介绍了一个使用C#编程语言解决的经典换酒问题。通过递归算法计算出15个空啤酒瓶能换得的最大啤酒数量。展示了完整的C#代码实现过程。

1万+

被折叠的 条评论
为什么被折叠?



