• 关于1000瓶水的问题


     题目如下:假设有N瓶水(当然N>0吧)
    每喝一瓶后可以得到的一个空瓶子
    而 每3个空瓶子又能换1瓶水,喝掉以后又得到一个空瓶子,

    问题是,你总共能喝多少瓶水,最后还剩余多少个空瓶子?

    代码如下

     1   private int Water(int n, int emptyQty)
     2         {
     3             Console.WriteLine("喝了" + n + "瓶水,多" + emptyQty + "个空瓶子.");
     4 

     5             if (n + emptyQty < 3//如果喝完水+空瓶还没有3的话,那就喝完了
     6             {
     7                 Console.WriteLine("" + (n + emptyQty) + "个空瓶子.");
     8                 return n;
     9             }
    10 

    11             int a = (n + emptyQty) / 3//喝了可换a瓶水
    12             int b = (n + emptyQty) % 3//余几个空瓶
    13 
    14             return n + Water(a, b);
    15         }

     
     假设起初是1000瓶的话,调用方法
     int sum = Water(1000,0);
    Console.WriteLine("喝了" + sum + "瓶水");

  • 相关阅读:
    程序是怎样跑起来的 第三章
    C#4.5-4.7学习总结
    第二周学习总结
    程序是如何跑起来的 第二章
    第一章读后感
    师生关系读后感
    C#学习总结
    我与计算机
    读《程序怎样跑起来》第一章有感
    读师生关系有感
  • 原文地址:https://www.cnblogs.com/benwu/p/2182987.html
Copyright © 2020-2023  润新知