baiyunjn 发表于 2017-7-2 14:44:08

关于买桃问题的一点想法

  初学C#,这几天初步了解了下循环问题,遇到了买桃问题这个案例:“桃子3元一个,3个桃核可以换一个桃子,拥有100元,最多可以吃多少个桃子?”;
  这样一个数学问题,想要用代码来实现,首先分析这个问题的思路:
  目的是吃最多,100元全部用来买桃子,然后吃光,再用桃核换取桃子,再吃,把新吃的桃核和没用完的桃核相加,再去换取桃子,直到桃核的数量小小于3,此时,剩余的钱和桃核都不足以换取桃子,说明已经吃了最大数量的桃子了;这里面的重复的动作是:
  1、换取桃子;2、计算剩余桃核;3、吃掉桃子;4、计算当前所拥有的桃核。重复的条件就是:用的桃核数量,足够换取桃子,一直到所计算的剩余桃核数量小于3为止。
  以下是用代码来实现:
  int money = 100, price = 3, exchange = 3;   //定义好钱,桃子单价和换桃的桃核数量;
            int eated, kernel;
            eated = money / price;   //吃到的桃子为最先100元钱能买到的桃子数量
            kernel = eated;      
            while(kernel>=exchange)
            {
                //换取桃子
                int peach = kernel / exchange;
                //计算剩余桃核
                int left = kernel % exchange;
                //吃掉桃子
                eated = eated + peach;
                //计算当前拥有的桃核
                kernel = left + peach;
            }
            Console.Write("最多可以吃到"+eated +"个桃子");
            Console.ReadLine();
  代码不多,这个问题难在于分析过程,所需要考虑到的各种情况,以及清楚其中的循环条件和循环体,比较而言,分析过程比结果难得多,今后遇到此类问题,还需分析梳理出此间各种条件之间的关系。
页: [1]
查看完整版本: 关于买桃问题的一点想法