zoukankan      html  css  js  c++  java
  • 狐狸与兔子问题

    刚刚看道编程题:

    围绕着山顶有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号洞里。

    张旋(zxsoft)
    如对本文有什么疑问,请在下面写下留言,谢谢!

  • 相关阅读:
    poj 3254 Corn Fields 状压dp
    poj 1330 Nearest Common Ancestors LCA/DFS
    poj1182 食物链 带权并查集 偏移量
    ural 1019. Line Painting 线段树 离散化
    zoj 2301 || hdu 1199 Color the Ball 线段树 离散化
    poj 1195 Mobile phones 二维树状数组
    poj 2155 Matrix 二维树状数组
    poj3067 Japan 树状数组 逆序数
    OpenWRT Init (User space boot) reference for Chaos Calmer: procd
    怎样写一个基于procd的init脚本
  • 原文地址:https://www.cnblogs.com/zxsoft/p/91029.html
Copyright © 2011-2022 走看看