狐狸与兔子问题

博客围绕山顶10个洞,狐狸按特定规则找兔子的问题展开。博主给出用C#编写的算法来解决此问题,运行该算法后得出兔子可能藏在2、4、7、9号洞里。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚刚看道编程题:

围绕着山顶有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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值