zoukankan      html  css  js  c++  java
  • 一个有趣的算老鼠程序

             昨天一个同事在玩一个GameBoy小智力游戏时间碰到一数学题,于是拿出来大家讨论。
    题目是这样的:说老鼠的生育能力惊人,一只老鼠假定它不需要交配的话一次能生20只小老鼠。隔2个月又能再生一窝。问现有一只老鼠刚生完一窝,十个月后这个老鼠窝里会有几只老鼠?当然,这只是一道IQ题。真要算也有不下几十种算法。用中学的方程式也很好解。然而我们是做程序的,能不能就写一个程序来计算一下呢?当然没有问题,以下就我写的全部代码:
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Test
    {
       public class 老鼠
        {
           public 老鼠()
           {          
           }

           public 老鼠(鼠窝 出生地)
           {
               _我的鼠窝 = 出生地;
           }

            private int _月龄;
            private int _生育能力;
            private 鼠窝 _我的鼠窝;

            public int 月龄
            {
                get
                {
                    return _月龄;
                }

                set
                {
                    _月龄 = value;
                }
            }

            public int 生育能力
            {
                get
                {
                    return _生育能力;
                }

                set
                {
                    _生育能力 = value;
                }
            }

           public 鼠窝 我的鼠窝
           {
               get
               {
                   return _我的鼠窝;
               }

               set
               {
                   _我的鼠窝 = value;
               }
           }


            public void 生小老鼠()
            {
                for (int i = 0; i < _生育能力; i++)
                {
                    老鼠 新生鼠 = new 老鼠(_我的鼠窝);
                    新生鼠.月龄 = 0;
                    新生鼠.生育能力 = _生育能力;

                    _我的鼠窝.添加新成员(新生鼠);
                }
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Test
    {
        public class 鼠窝
        {
            public 鼠窝()
            {
                _老鼠大家庭 = new List<老鼠>();
            }

            private List<老鼠>  _老鼠大家庭;
            public List<老鼠> 老鼠大家庭
            {
                get
                {
                    return _老鼠大家庭;
                }  
            }

            public int 老鼠数量
            {
                get 
                {
                    return _老鼠大家庭.Count;
                }            
            }

            public void 添加新成员(老鼠 小鼠宝宝)
            {
                _老鼠大家庭.Add(小鼠宝宝);
            }

            public void 告别成员(老鼠 鼠列士)
            {
                _老鼠大家庭.Remove(鼠列士);
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace Test
    {
        class Program
        {
            private static int 月份 = 3;
            private static int 每次可生数量 = 1;

            static void Main(string[] args)
            {
                鼠窝 鼠的乐园 = new 鼠窝();
                老鼠 创始鼠 = new 老鼠(鼠的乐园);
                创始鼠.月龄 = 2;
                创始鼠.生育能力 = 每次可生数量;
                鼠的乐园.添加新成员(创始鼠);

                for (int i = 1; i <= 月份; i++)
                {
                    for (int k = 0; k < 鼠的乐园.老鼠数量; k++)
                    {
                        鼠的乐园.老鼠大家庭[k].月龄++;
                    }

                    for (int j = 0; j < 鼠的乐园.老鼠数量;j++ )
                    {
                        老鼠 阿鼠 = 鼠的乐园.老鼠大家庭[j];
                        if (阿鼠.月龄 >= 2)
                        {
                            阿鼠.生小老鼠();
                        }
                    }                
                }

                System.Console.WriteLine(鼠的乐园.老鼠数量.ToString());

                System.Console.ReadLine();
            }
        }
    }

    程序写完,其实这样的程序很普通,不就是个简单的C#程序吗?但我回想起我们现在的工作,写了很多企业级应用一直在鼓吹面向对象却连这样的小程序都不如。后台封装好的数据访问组件供我们调用,前台代码依旧那样的老套,开发模式依然没有创新。为此我们应该反省......
  • 相关阅读:
    每日一篇文献:Robotic pick-and-place of novel objects in clutter with multi-affordance grasping and cross-domain image matching
    每日一篇文献:Intuitive Bare-Hand Teleoperation of a Robotic Manipulator Using Virtual Reality and Leap Motion
    每日一篇文献:Virtual Kinesthetic Teaching for Bimanual Telemanipulation
    HEBI Robotic Arm VR Teleoperation
    「iQuotient Case」AR device teleoperated robotic arm
    VR and Digital Twin Based Teleoperation of Robotic Arm
    HEBI Robotic Arm VR Teleoperation
    Human Robot Interaction
    Immersive Teleoperation Project
    机器人演示学习
  • 原文地址:https://www.cnblogs.com/Nelson/p/786675.html
Copyright © 2011-2022 走看看