程序员必备75道逻辑思维题(附答案)之三

逻辑训练

身为一个大数据工程师,平时的算法训练还是不能少的,今天给大家看几道我曾经看到的逻辑思维题觉得很好,想分享一下。

【11】有一人有240公斤 水,他想运往干旱地区赚钱。他每次最多携带60公斤,并且每前进一公里须耗水1公斤(均匀耗水)。假设水的价格在出发地为0,以后,与运输路程成正比, (即在10公里处为10元/公斤,在20公里处为20元/公斤…),又假设他必须安全返回,请问,他最多可赚多少钱?

【12】现在共有100匹马跟100块石头,马分3种,大型马;中型马跟小型马。其中一匹大马一次可以驮3块石头,中型马可以驮2块,而小型马2头可以驮一块石头。问需要多少匹大马,中型马跟小型马?(问题的关键是刚好必须是用完100匹马)

【13】1=5 2=15 3=215 4=2145 那么5=?

【14】有2n个人排队进电影院,票价是50美分。在这2n个人当中,其中n个人只有50美分,另外n个人有1美元(纸票子)。愚蠢的电影院开始卖票时1分钱也没有。
问: 有多少种排队方法 使得 每当一个拥有1美元买票时,电影院都有50美分找钱
注:
1美元=100美分
拥有1美元的人,拥有的是纸币,没法破成2个50美分

【15】一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块卖给另外一个人。问他赚了多少?

========================================我是傻X般的分割线

答案:

11】
f(x)=(60-2x)*x,当x=15时,有最大值450。
1820元设是X公里处赚最多钱。问题就成是求一个一元二次方程的最大值,求得是在15公里处赚钱最多,450元。一共240公斤……

【12】
6种结果
大、中、小:(2\30\68)(5\25\70)(8\20\72)(11\15\74)(14\10\76)(17\5\78)
【13】
因为1=5,所以5=1

【14】
本题可用递归算法,但时间复杂度为2的n次方,也可以用动态规划法,时间复杂度为n的平方,实现起来相对要简单得多,但最方便的就是直接运用公式:排队的种数=(2n)!/[n!(n 1)!]。
如果不考虑电影院能否找钱,那么一共有(2n)!/[n!n!]种排队方法(即从2n个人中取出n个人的组合数),对于每一种排队方法,如果他会导致电影院无法找钱,则称为不合格的,这种的排队方法有(2n)!/[(n-1)!(n 1)!](从2n个人中取出n-1个人的组合数)种,所以合格的排队种数就是(2n)!/[n!n!]- (2n)!/[(n-1)!(n 1)!] =(2n)!/[n!(n 1)!]。至于为什么不合格数是(2n)!/[(n-1)!(n 1)!],说起来太复杂,这里就不讲了。

【15】
2元

发布了52 篇原创文章 · 获赞 31 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39361934/article/details/104923298