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