有意思的笔试题记录与分析

  昨天参加了某公司的笔试,总的来讲题目很简单。可是仍是有几个个题目是颇有意思的,拿来和你们分享下!web

 一、小周带着他的鸵鸟穿越1000千米的沙漠,运送3000颗白菜。已知鸵鸟一次性可驼1000颗白菜,但每走1千米又要吃掉1棵白菜,问:小周最终能够运多少颗白菜?算法

分析:记得之前算法设计书上有个相似的油车过沙漠的问题,当时这问题是用倒推法来解决的,由于它有个结题突破口:油车以最少的耗油量穿过沙漠。本题同是过沙漠问题,可是却没有像油车过沙漠的解题突破口,怎么办呢?咱们先想一个极限:让小周直接带着1000颗白菜头也不回的走到终点,这样恰好在途中吃完了全部白菜。此时起点还堆着2000棵白菜!因此咱们只能折中:也就是每次出发都是带1000棵白菜,可是还要想着再次开始新的旅程时,最开始的起点是没有白菜的。具体作法:一共3000颗,因此大体能够将全程分为3个阶段。编程

第一阶段:每次只能运1000,因此要从起点出发走3次(一遍运完全部白菜,吃掉的归吃掉总不至于像上面说的完事以后起点还有2000颗,可是再也回不去了!),减去最后一次出发无需返回的1次也就是第一阶段来回5次。那么每一回就吃掉1000/5=200颗,因此第一阶段要走200千米。与此同时白菜的余量=3000-200*5=2000;spa

第二阶段:余下2000颗,因此要从第一阶段的终点出发走2次,减去最后一次无需返回的1次也就是第二阶段来回3次,那么每一回吃掉1000/3=333颗,因此第二阶段要走333千米,剩余白菜2000-333*3=1001颗。设计

第三阶段:固然一路奔向成功了!要走的路程1000-200-333=467千米,用第二阶段的白菜余量1001-467就是最后到达终点时的白菜余量即为534颗。code

多谢园友一蚁行xDLMUCAI付的提醒,其实到第三阶段的时候已经出来答案了,这是个选择题只是我没给选项罢了!我又斟酌了一下:在第二阶段1000/3我作了粗略处理。应该剩余1000/3颗,剩余白菜1000颗。那么第三阶段就是1000-200-1000/3=466.7千米(约等于466千米,每走1千米吃1颗因此不足1千米就舍去),最终:1000-466=534颗。最后提醒你们本文所述均只表明我的观点,若有错误或有更好的解决办法,欢迎你们拍砖~orm

 

二、用一根绳子去测量海沟的深度,发现绳子放到2000米因自身重力断掉了。若把相同材质的绳子半径加粗到一杯,能放到多少米?blog

分析:咱们知道m=p*v,既然材质相同则p相同,v=π r² h,h不变时v扩大到原来的4倍。咱们再来从微观看,上边的拉力之因此能和下边的拉力达到平衡,是由于绳子传递了这个拉力,绳子之因此能传递这个拉力是由于其分子之间有引力,当绳子之间分子的引力不足以传递这个拉力时,绳子的分子引力被拉力破坏,就像拉开吸引在一块儿的磁铁同样,绳子宏观表现被拉断。因此咱们只需分析单位横截面上的拉力便可,虽然绳子加粗会致使绳子的重力变为原来的4倍,可是同时横截面积液扩大为原来的4倍,多以做用在单位横截面上的拉力不变。因此仍是2000米。ci

三、这个题目记得不太清晰了,大体是这样的:小明打算用20元去买花,要充分利用这些钱,那么他必须买那一种花?get

    A、单价3.8元的  B单价4元的  C单价4.4元的   D单价6元的

这个题目呢我一看以为若是编程实现的话很是容易!直接4个嵌套循环就ok,代码以下

 

 1 protected void Button2_Click(object sender, EventArgs e)
 2         {
 3             List<string> l = new List<string>();
 4             for (int i = 0; i < 5; i++)
 5             {
 6                 for (int j = 0; j < 5; j++)
 7                 {
 8                     for (int x = 0; x < 5; x++)
 9                     {
10                         for (int y = 0; y < 5; y++)
11                         {
12                             if (3.8*i+4*j+4.4*x+6*y==20)
13                             {
14                                 l.Add(i.ToString() + "\t" + j.ToString() + "\t"+x.ToString()+"\t"+y.ToString());
15                             }
16                         }
17                     }
18                 }
19             }
20             ListBox1.DataSource = l;
21             ListBox1.DataBind();
22         }

执行结果(只有2组知足,对比可知选B):


问题:若是咱们在卷面作的时候要一种状况一种状况地试吗?当时我作的时候我直接选的能被整除的B,可是我殊不知道问什么!有知道的大神请分享下思想~

 

未完待续……

相关文章
相关标签/搜索