首页 > 代码库 > 关于买桃问题的一点想法

关于买桃问题的一点想法

初学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();

代码不多,这个问题难在于分析过程,所需要考虑到的各种情况,以及清楚其中的循环条件和循环体,比较而言,分析过程比结果难得多,今后遇到此类问题,还需分析梳理出此间各种条件之间的关系。

关于买桃问题的一点想法