用C#实现的一道公务员考题

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



某人有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);


    }





}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superdont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值