脑力风暴之小毛驴历险记(1)----好多胡萝卜(下)
2012-08-20 11:42 立雪三尺 阅读(1293) 评论(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)"
小驴挥了挥手:"得了,得了,收起你那套歪道道吧,程序猿要去领奖励你去不?"
程序猿一阵大喜:"国王的奖励吗?必须去啊!"
于是,同去,同去!
作者:立雪三尺
出处:http://www.cnblogs.com/songsz1/
我滴生命是如此滴辉煌!我滴生活是如此滴灿烂!
关于作者:初出茅庐,职场菜鸟。静如瘫痪,动若癫痫。!姓名不知,生死不详!
如有问题或建议,请多多赐教! 如无,出门左转是政府。
本文版权归作者所有,欢迎转载,不一定非得在显眼处给出原文链接
如有想不开的暴击我
最后严重警告:本文作者真的是名程序员。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述