生活随笔
收集整理的這篇文章主要介紹了
狐狸与兔子问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
剛剛看道編程題:
圍繞著山頂有10個洞。一只兔子和一只狐貍各住一個洞。狐貍要吃兔子。兔子對狐貍說:“你想吃掉我可以,但必須找到我。我就藏身于這十個洞中,你從10號洞出發,先到1號洞找我,第二次隔一個洞找我,第三次隔兩個洞找我,……,以后依次類推,若能找到我,可飽餐一頓。”。狐貍答應了,但是狐貍從早到晚進進出出了1000次,仍沒找到兔子。請編程求兔子究竟躲在哪個洞里。?
下面是我寫的C#算法:
using?System; namespace?ConsoleApplication3 { ?///?<summary> ?///?Class1?的摘要說明。 ?///?</summary> ?class?Class1 ?{ ??///?<summary> ??///?應用程序的主入口點。 ??///?</summary> ??//[STAThread] ??static?bool[]?rabbitInCave=new?bool[10];?//10個洞里有沒有兔子 ??static?void?SetRabbitInCave(int?caveNumber)???//設定哪個洞里有兔子 ??{ ???for(int?i=0;i<10;i++) ???{ ????rabbitInCave[i]=false; ???} ???rabbitInCave[caveNumber]=true; ??} ??static?int?GetCaveNumber(int?biggerCaveNumber)//得到正確的洞的編號 ??{ ???return?biggerCaveNumber?%?10; ??} ??static?bool?TestCave()//測試1000次內能否找到兔子 ??{ ???int?stepADD=0; ???int?caveNumber=9; ???for(int?i=0;i<=1000;i++) ???{ ????if(rabbitInCave[caveNumber]) ?????return?true; ????stepADD+=1; ????caveNumber=GetCaveNumber(caveNumber+stepADD); ???} ???return?false; ??} ??static?void?Main(string[]?args) ??{ ???// ???//?TODO:?在此處添加代碼以啟動應用程序 ???// ???/*???圍繞著山頂有10個洞。一只兔子和一只狐貍各住一個洞。 ????*???狐貍要吃兔子。兔子對狐貍說:“你想吃掉我可以,但必 ????*???須找到我。我就藏身于這十個洞中,你從10號洞出發, ????*???先到1號洞找我,第二次隔一個洞找我,第三次隔兩個洞找 ????*???我,……,以后依次類推,若能找到我,可飽餐一頓。”。 ????*???狐貍答應了,但是狐貍從早到晚進進出出了1000次,仍沒找 ????*???到兔子。請編程求兔子究竟躲在哪個洞里。? ????*?*/ ???for(int?i=0;i<10;i++) ???{ ????SetRabbitInCave(i); ????if(!TestCave()) ?????Console.WriteLine("兔子可能在{0}號洞里。",i+1); ???} ??} ?} } |
運行,得到結果,兔子可能在2,4,7,9號洞里。
轉載于:https://www.cnblogs.com/zxsoft/archive/2005/01/13/91029.html
總結
以上是生活随笔為你收集整理的狐狸与兔子问题的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。