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)
    如对本文有什么疑问,请在下面写下留言,谢谢!

  • 相关阅读:
    【Git】windows上git命令中文乱码的问题
    【spring boot】集成了druid后,同样的mybatis模糊查询语句出错Caused by: com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'name LIKE '%' ? '%'
    【log4j】springboot项目启动 ,使用的druid数据源,log4j报错 log4j:WARN Please initialize the log4j system properly.
    ScheduledExecutorService run方法要加入try catch
    基于t-io的MI工具实现
    Java 8:不要再用循环了 Stream替代for循环
    java gzip压缩与解压
    Java将字符串写入文件与将文件内容读取到字符串
    Des加解密
    spring boot 利用redisson实现redis的分布式锁
  • 原文地址:https://www.cnblogs.com/zxsoft/p/91029.html
Copyright © 2011-2022 走看看