一隻猴子有100個香蕉,把香蕉搬到50米之外的家裡,每次最多拿50個香蕉,每走一米要吃掉一個香蕉,最後家裡能剩下幾個香蕉
題目:一隻猴子有100個香蕉,把香蕉搬到50米之外的家裡,每次最多拿50個香蕉,每走一米要吃掉一個香蕉,最後家裡能剩下幾個香蕉。
答案:
很多人的方案:猴子先搬50根,走17米,在回來搬50根走到17米處,回來後再搬剩下的49根走完33米,最後得到16根!
但是其實可以剩下17根。
猴子先搬50根,走16.9米,在回來搬50根走到16.9米處,回來後再搬剩下的50根走完33.1米,最後得到17根!
分解:
1.先搬50根走到16.9米處,消耗了16個香蕉,返回到0米處需要帶上17根香蕉吃,此時就在16.9米處剩下17根香蕉;
2.接著搬第二次50根,走到16.9米處,消耗了17個香蕉,第二次搬的50個還剩餘33個香蕉;
3.兩次下來在16.9米處總共還有50根香蕉,走完剩下的33.1米,消耗33個香蕉,最後得到17根香蕉。
為什麼在16.9米(在16到17米之間都可以),是為了最後可以直接搬50個走向家裡,16.9的路程走三次=50.7米,加上最後走的33.1米 = 83.8米 0.8米沒有達到1米,猴子不需要吃香蕉
相關推薦
一隻猴子有100個香蕉,把香蕉搬到50米之外的家裡,每次最多拿50個香蕉,每走一米要吃掉一個香蕉,最後家裡能剩下幾個香蕉
題目:一隻猴子有100個香蕉,把香蕉搬到50米之外的家裡,每次最多拿50個香蕉,每走一米要吃掉一個香蕉,最後家裡能剩下幾個香蕉。 答案: 很多人的方案:猴子先搬50根,走17米,在回來搬50根走到17米處,回來後再搬剩下的49根走完33米,最後得到16根! 但是其實可以剩下17根。 猴
[商湯]一個狗媽媽有70塊肉,狗寶寶距離狗媽媽60步。每次狗媽媽最多拿40塊肉,每走2步需要吃掉一塊肉,則它最多能把 多少 塊肉拿給狗寶寶。
題目:一個狗媽媽有70塊肉,狗寶寶距離狗媽媽60步。每次狗媽媽最多拿40塊肉,每走2步需要吃掉一塊肉,則它最多能把 多少 塊肉拿給狗寶寶。 根據題意,如果滿載直接到終點會浪費掉30肉,而最優解一定要將這30肉消耗掉,以換取滿載的情況下距離寶寶最近,因此一定要在起點與終點之
15個猴子圍城一圈選大王,依次1-7迴圈報數,報到7的猴子會被淘汰,直到最後一隻猴子成為大王,問:哪隻猴子會最終成為大王!
方法1: public class Monkey { public static void main(String[] args) { // TODO Auto-generated
oracle,要統計一個表裡,每個頻道,每天有多少個節目並排序
<select id="selectLists" resultType="map"> select a.STARTDATE AS "startTime", a.CHANNELID AS "channelId", count(a.PROGRAMNAME) A
兩個list 合併後去除掉重複removeAll()的,然後再隨機獲取最後list中的 幾個值
public static void test1(){ String s1="1,2,5,3,6,9"; String n1[]=s1.split(","); System.out.println("n1length="+n1.length); String s2="2,3";
網易筆試題:輸入一個正整數,若該數能用幾個連續正整數之和表示,則輸出所有可能的正整數序列。
解題思路: **找到數學規律。n以i為開頭的j個整數的和為i*j+j*(j-1)/2;判斷輸入的整數是否和計算結果相同。 如果相同則迴圈輸出以i為開頭的j個整數。 這個題目給我最大的啟示就是要學會用數學的方法來解決問題,在此之前我一直希望通過一種遞
網易Java程序員兩輪面試,這些問題你能答對幾個?
詳解 ring 成員 協議 而是 介紹 tracking pin java程序 一轉眼,2018 年已經過去了,你是否在滿意的公司?拿著理想的薪水? 雖然“錢多、事少、離家近”的工作可能離技術人比較遠,但是找到一份合適的工作,其實並不像想象中那麽難。但是,有
深入淺出maven系列(三)---maven構建ssh工程(父工程與子模組的拆分與耦合) 前一節我們初識了maven並且掌握了maven的常規使用,這一節就來講講它的一個重要的場景,也就是通過maven將一個ssh專案分隔為不同的幾個部門獨立開發,很重要,加油!!!
前一節我們初識了maven並且掌握了maven的常規使用,這一節就來講講它的一個重要的場景,也就是通過maven將一個ssh專案分隔為不同的幾個部門獨立開發,很重要,加油!!! 一、maven父工
有1千萬條有重復的短信,以文本文件的形式保存,一行一條,也有重復,用5分鐘時間找出重復出現最多的前10條短信。
ascii碼 宋體 哈希表 文本 深度 pan 進行 span 二次 1,哈希表法 分成若幹組,進行掃描。相同記錄只加1次,重復次數加1,之後進行第二次掃描,得出重復次數的前十名。 2,從小到大排序(我覺得最好不用這種方法,準確性不高) 3,內存映射(建議) 對每條
衡量網絡性能的幾個指標——吞吐量、時延、信道利用率
數據包 信道 span family 包括 gpo 單位 mil 最大 一.吞吐量(Throughput) 吞吐量是指網絡中主機(server和client)之間的實際數據傳輸速率,即單位時間內實際傳輸的數據量,常用的單位有Kbps,Mbps。 而帶寬是指網絡的最大數據傳輸
使用 HTTP/2 提升性能的幾個建議
web 物理 安排 HERE multi app ats server 優化 歷史悠久的超文本傳輸協議,即HTTP標準,最近版本升級了。HTTP/2在2015年5月被批準,目前已經在很多Web瀏覽器和服務器中得到實現(包括NGINX
提升vector性能的幾個技巧
嘗試 連續 指針和引用 數據結構 ring 情況下 但是 real stl 原文:https://www.sohu.com/a/120595688_465979 Vector 就像是 C++ STL 容器的瑞士軍刀。Bjarne Stoutsoup 有一句話 – “一般情況
軟件性能中幾個主要的術語
操作系統 使用 定位 -s 是否 執行 計數 函數 服務器 一、響應時間 響應時間是“對請求做出響應所需要的時間”。之前說過,它既有客觀的成分,也有主觀的成分,一般將用戶所感受到的軟件性能(響應時間)分為呈現時間和服務器端響應時間兩個部分。對於
假設你有一個各位數字互不相同的四位數,把所有的數字從大到小排序後得到a,從小到大後得到b,然後用a-b替換原來這個數,並且繼續操作。例如,從1234出發,依次可以得到4321-1234=3087、87
#include<stdio.h>int main(){int n;while(~scanf("%d",&n)){int i,j=0,k,s;int a[300],b[300],c[300];for(i=0; i<n; i++){s=0;scanf
程式設計師專屬謎語 你能猜中幾個?
1. 深夜造訪(打一網路安全術語) 2. 連勝六場又贏了(打一知名作業系統) 3. 小米大合唱(打一著名網際網路廠商) 4. 月老難扯二人姻緣(打一網路技術) 5. 悟空出了五指山(打一技術用語) 6. E(打一開發語言) 7. 話又說回來了(打一網路完全術語
Thread的thread1.join(),thread1.join(int milliseconds)方法:把執行緒thread1加入到當前執行緒(最多等待milliseconds毫秒)
thread.Join把指定的執行緒加入到當前執行緒,可以將兩個交替執行的執行緒合併為順序執行的執行緒。 比如線上程B中呼叫了執行緒A的Join()方法,直到執行緒A執行完畢後,才會繼續執行執行緒B。 t.join(); //呼叫join方法,等
一個優秀的程式設計師該有的幾個好習慣
1. 看到下次還經常用的函式程式碼就會封裝,然後儲存; 注意這裡提到的,先封裝到一個類中,這樣就能避免每段程式碼都儲存到一個檔案中,下次使用時可以直接拷這個類使用; 2. 系統地學習的時候,多看業內大牛的部落格,這樣能大大提高學習的效率; 學習一流的大牛的部落格,只要肯花功夫,成為一個二流的業內人是沒問
一個優秀的程序員該有的幾個好習慣
nbsp sdn 函數 程序員 問題 很好 學習 視野 自己的 1. 看到下次還經常用的函數代碼就會封裝,然後保存; 註意這裏提到的,先封裝到一個類中,這樣就能避免每段代碼都保存到一個文件中,下次使用時可以直接拷這個類使用; 2. 系統地學習的時候,多看業內大牛的博客,這樣
【結構之法 演算法之道】2015年起和團隊創業做七月線上,專注AI教育。希望一直不斷幫助天下最多人
博主簡介 July,湖南婁底人,於2010年10月11日開始在CSDN上寫博(搜尋:結構之法,進入本部落格),部落格專注面試、演算法、機器學習。2011年畢業於東華理工,2015年正式創業,任:七月線上創始人兼CEO,公司官網:七月線上(https://www.july
程式設計師面試題目總結--陣列(三)【旋轉陣列的最小數字、旋轉陣列中查詢指定數、兩個排序陣列所有元素中間值、陣列中重複次數最多的數、陣列中出現次數超過一半的數】
11、求旋轉陣列的最小數字 題目:輸入一個排好序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 分析:陣列的旋轉:把一個數組最開始的若干個元素搬到陣列的末尾。例如陣列{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個旋轉,該陣列的最小值為1。這道題最直觀的解