刚刚看道编程题: 
围绕着山顶有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号洞里。