标签:ice 个数 分析 重复 adl 梳理 最大 结果 问题
初学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();
代码不多,这个问题难在于分析过程,所需要考虑到的各种情况,以及清楚其中的循环条件和循环体,比较而言,分析过程比结果难得多,今后遇到此类问题,还需分析梳理出此间各种条件之间的关系。
标签:ice 个数 分析 重复 adl 梳理 最大 结果 问题
原文地址:http://www.cnblogs.com/pein123/p/6850896.html