zoukankan      html  css  js  c++  java
  • 脑力风暴之小毛驴历险记(1)好多胡萝卜(下)

        “我是人类工业革命后的新物种,科技研究上的奇葩,人类DNA的重新突变进化,拥有无与伦比的耐力、超越时代的智商、横穿社会的苦逼相和低于人类平均寿命等显著优点。” 每次遇到一个人,程序猿都有着如此歇斯底里式的自程序猿介绍,详细而不乏概要,理性而不缺感知.

       "早上好,程先生!"

       "早上好,你叫我序猿就行"

        早上刚吃过饭走出大门,遇到小毛驴,它正欢快的向城里走,看到程序猿,于是就简单扼要的打了招呼,作为一名XX型的程序猿,一切都必须要简单扼要,能省就省,能够看到一个名字不过一个ID号而已,要知道一切不过是1和0的有序组合.

        一个XX型的程序员按照level的高级依次为:文弱Geek型,技术大牛型,还有就是苦逼码字型.

        显然程序猿等级还比较低,由于前几天有点小忙,一直没有解决小毛驴的胡萝卜问题,昨晚忽然想起,如同将要LogOff下班回家时候,忽然发现一个Bug.一身冷汗暗暗涌出,

        当然,一个XX型的程序猿的慌张不会表现在脸上,程序猿昨晚只是略微后仰,翘着二郎腿最好,然后在后仰的情况下低着头,以便看到屏幕,然后就不要再动了.略一深阖,忽而猛地瞪起双目,只是两手轻轻敲出一段代码,方知还是个活物.

        约莫花掉一个钟头解决掉这个问题,习惯性抬头一望,依旧没剩下几个人,然后如同往常一般找一个更苦逼的程序猿,重复了一句:"你进度太慢了啊,不要老让程序猿等你,程序猿先回家了"

        于是.骑着程序猿的二八小车在辉煌的路灯中悠悠的回家.

        还好程序猿昨天想起了小驴的难题,作为一名寡言型的程序猿,一般的话题就只有异常BUG,Realease之类.今天见了小驴,果然还是有点话题的,:"小驴啊,前几天咱们说的那个问题,程序猿有了解决方案了啊,给你看看

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace ass
     7 {
     8     class Ass
     9     {
    10         int forwardDistance = 0;
    11 
    12         //计算剩余最大的胡萝卜量
    13         public int maxCarrot(int totalAmount)
    14         {
    15             //如果胡萝卜小于总路程,return -1,即小毛驴穿不过沙漠
    16            if (totalAmount < 1000)
    17             {
    18                 return totalAmount = -1;
    19             }
    20 
    21             else
    22             {
    23                //times: 将1000公里分几次走完
    24                 int times = 0;
    25                //if总量 是1000的整数倍时,能满足每次前进都可以运输小毛驴的最大量1000
    26                 if ((totalAmount % 1000) == 0)
    27                 {
    28                     times = totalAmount / 1000;
    29                     for (int i = 1; i <= times; i++)
    30                     {
    31                         Console.WriteLine("这是第"+i+"运输:");
    32                         totalAmount = getAmount(totalAmount, (2 * (totalAmount / 1000) - 1));
    33                         Console.WriteLine("这次运输完成后还剩余" + totalAmount + "胡萝卜");
    34                     }
    35 
    36                         return totalAmount;
    37                 }
    38                 //else 总量不是1000的时,某次运输可能不能满足运送的最大量,这时就要比较为了剩余的胡萝卜 再返回去值不值得。
    39                 //FE:某次出发点剩余100胡萝卜,返回200公里去取,放弃剩余的胡萝卜
    40                 else
    41                 {
    42                     int totalAomunt1 = 0;
    43                     times = totalAmount / 1000;
    44                     totalAomunt1 = totalAmount - totalAmount % 1000;
    45                     for (int i = 1; i <= times; i++)
    46                     {
    47                         totalAomunt1 = getAmount(totalAomunt1, (2 * (totalAomunt1 / 1000) - 1));
    48                     }
    49                     int totalAmount2 = totalAmount;
    50                     forwardDistance = 0;
    51                     times = totalAmount / 1000 + 1;
    52                     for (int i = 1; i<=times;i++){
    53                         totalAmount2 = getAmount(totalAmount2, (2 * (totalAmount2 / 1000) + 1));
    54                     }
    55                     if (totalAomunt1 < totalAmount2)
    56                         totalAmount = totalAmount2;
    57                     else
    58                         totalAmount = totalAomunt1;
    59                     return totalAmount;
    60                 }
    61             }
    62         }
    63         //计算每次运输过程中前进的公里数,以及剩余的胡萝卜总量
    64         public int getAmount(int total,int goABtimes) {
    65                 forwardDistance = 1000 / goABtimes + forwardDistance;
    66                 total = total - 1000;
    67                 //最后一次运输,
    68                 //if (forwardDistance -1000>0),最后行走800公里,剩余200公里,还有900胡萝卜,可行走900公里,
    69                 //显然应将多走(800+900-1000)的部分加上
    70                 if (forwardDistance > 1000)
    71                 {
    72                     Console.WriteLine("最后一次运输,剩余的胡萝卜可多走:"+(forwardDistance-1000)+"公里");
    73                     total = total + (forwardDistance - 1000) * goABtimes;
    74                 }
    75              return total;        
    76         }
    77         static void Main(string[] args)
    78         {
    79 
    80             Console.WriteLine(new Ass().maxCarrot(2900));
    81             Console.ReadKey();
    82         }
    83 
    84 
    85     }
    86 }

        小驴看了,吐了吐舌头,:"貌似很复杂哇"

        程序猿说:"程序猿主要是考虑了你胡萝卜总量的变化,不仅3000时候可用这个计算,其它任何量都可以计算啊"

       小驴蔑视了程序猿一眼:"看看,看看,需求分析没做好吧,程序猿只有3000根胡萝卜那来这么多变化的胡萝卜啊,白白增加了逻辑复杂度,算了,时间来不及了,就这样吧"

        程序猿一阵无语,习惯性的点燃一支烟,正要争辩.,小驴见了立刻大叫:"最烦抽烟的人了,不知道这是慢性自杀么!"

        程序猿蔑视了他一眼,抽了口烟:"永远不要警告程序猿,作为一名程序猿,他永远不理会警告(waring),只会在意错误(error)"

        小驴挥了挥手:"得了,得了,收起你那套歪道道吧,程序猿要去领奖励你去不?"

        程序猿一阵大喜:"国王的奖励吗?必须去啊!"

        于是,同去,同去!

  • 相关阅读:
    超强、超详细Redis入门教程
    zsh: command not found: pip 解决方法
    Python 进阶必备函数
    【debian】解决debian中文安装后出现乱码的问题
    【随笔】关于服务器
    【随笔】Linux主机简单判断CC攻击的命令
    【Docker】通过cookie欺骗在ubuntu中使用wget下载jdk
    【linux】在ubuntu中使用apt-get安装oracle jdk6
    【Nginx】关于域名转发proxy_pass
    【Docker】制作一个支持SSH终端登录的镜像
  • 原文地址:https://www.cnblogs.com/songsz1/p/2647304.html
Copyright © 2011-2022 走看看