倒水

心血来潮

http://hero.pongo.cn/home/index

        static DateTime startTime = DateTime.Now;
        static int allTime = 5;//分钟。超时时间

        static void Main(string[] args)
        {
            int A = 5;
            int B = 3;
            int C = 4;

             //c语言:1表示可以,0表示不可以

            int r = can(A, B, C);

        }

        private static int can(int A, int B, int C)
        {
            int t = 0;
            int z = 0;
            while (true)
            {
                z = random(A,B);
                t = t + z;
                Console.WriteLine("temp={0}  value={1}",z,t);
                if ((DateTime.Now-startTime).TotalMinutes>allTime)
                {
                    Console.WriteLine("在指定时间内没有计算出结果。");
                    return 0;
                }
                if (t > C)
                {
                    Console.WriteLine("重新再来!");
                    Console.WriteLine("------------------------------");
                    t = 0;
                    continue;
                }
                if (t == C)
                {
                    Console.WriteLine("已经找到解决方案。");
                    return 1;
                }

            }
        }

        private static int random(int A, int B)
        {
            int i = 0;
            i = new Random().Next(4);
            if (0==i)
            {
                Console.WriteLine("用A容器装满水,加入水缸");
                return A;
            }
            else if (1 == i)
            {
                Console.WriteLine("用B容器装满水,加入水缸");
                return B;
            }
            else if (2 == i)
            {
                Console.WriteLine("用A容器和B容器分别装满水,同时加入水缸");
                return A + B;
            }
            else
            {
                Console.WriteLine("清空较小的容器;用较大的容器,装满水;先灌满较小的容器,将剩余的水加入水缸");
                return (A > B) ? (A - B) : (B - A);
            }
        }

效果还凑活哦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值