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