• 吃饭美女姐姐给出的算术题


    给你1000个苹果,给你10个箱子,苹果可以往箱子里面随便放,我向你要苹果的时候,我肯定是要1000个以内的(含1000个),你必须给我箱子,箱子里面存放着我要的苹果,给我的箱子数目任意,请问,这10个箱子中苹果应该怎么放?

    答案:大学的递归算法和数学归纳法思想,我们必须联想到递推的含义,要解决大的问题,就必须在小的问题上进行找规律,所以我们从最基本的做起,我要一个苹果,你必须在某个箱子只能放入一个苹果,我要两个,此时面临的选择是你可以两个箱子各放一个苹果,也可以在某一个箱子放入两个苹果,但是你要考虑到我们只有10个箱子,所以必须要以最小的次数来解决问题,我们选择在某个箱子放入两个苹果,这样,即便是我要三个苹果的时候,你就可以把两个箱子给我,因为两个箱子里面一共装了3个苹果,当我要四个苹果的时候,你不满足,此时你面临的选择,在某个箱子放入一个苹果,在某个箱子放入两个苹果,或者在某个箱子放入四个苹果,因为我们要满足更大的数目,所以我们要在某个箱子放入四个苹果,以此类推,我们放入的苹果为8,16,32,64,128,256,此时要注意,只剩下最后一堆的苹果了,我们算出,现在已经放入箱子的苹果数目为511个,所以最后我们只能放入1000-511 = 489个,此题目的规律类似于斐波那契数列,前面的苹果数目只能满足前面苹果数目相加起来的情况,所以啊,最后一个元素不用考虑是否满足,而是一定满足的,所以最后一个必须为489个,这也检验了一个人是否细心,所以我们必须要学会谨慎的思维,而不能浮躁!

  • 相关阅读:
    2016 Multi-University Training Contest 1 solutions BY HIT
    Unicode 码表
    用 lambda 表达式 对 List 进行排序
    Linux的sed命令介绍
    Linux下的NTP服务搭建
    Linux网络配置(ip命令及配置文件)
    Linux的bash脚本编程(if语句和循环语句)
    Linux新手必须掌握的命令(2)
    Linux的文件查找
    bash中的变量
  • 原文地址:https://www.cnblogs.com/lovehappy/p/1986393.html
Copyright © 2020-2023  润新知