学编程解数学题——巧求周长
本帖最后由 hnyzcj 于 2018-6-20 22:11 编辑女儿周末作业一道题目:
一张长方形的纸长24cm,宽14cm。先剪下一个最大的正方形,从余下的纸片中再剪下一个最大的正方形,最后余下的长方形周长是多少?
一、分析问题:
这是一道求边长的题目,长方形的边长公式为C=2*(a+b)其中C代表边长,a代表长,b代表宽。对于此题,小朋友只要在草稿纸上认真画一画,就能够得到结果。他的解题过程是这样的。
第一次剪裁最大的正方形,(补充知识:正方形四条边相等)首先比较a,b长和宽值的大小,很容易得出按较短的边进行剪裁。如下图所示
第二次剪裁最大的正方形,此时长方形的长为14cm(上一次的b),宽为24-14(上一次的a-b),比较两值大小得出按较短的边进行剪裁。如下图所示。得到的长方形长为10(a-b)宽为4(14-(a-b))计算所剩下长方形的周长为:C=2*(10+4)=28
二、设计算法:通过上述分析我们可以解法:设定变量c,a,bc=0 周长a=24 长b=14 宽temp=0 中间变量 判断条件a>b ?(保证长大于宽) 满足条件执行:temp=a-b a=b b=temp 输出:c=2*(a+b) 否则 输出提示“please make a>b”三、编写程序运行结果
如果此时就这样结束了,你会觉得少了点什么。嗯嗯,是的……少了什么呢?思考什么几分钟小朋友们!
实际上在上题中,上述算法没有什么问题,但是如果在我们的长和宽比大于1的话?(例如我们将长改为42,宽20,剪裁4次)上述算法就是不对的了。修改算法:设定变量c,a,bc=0 周长a=24 长b=14 宽temp=0 中间变量判断条件a>b ?(保证长大于宽) 满足条件执行: temp=a-b 判断条件temp>b? 满足条件执行: temp=a-b a=temp 输出:c=2*(a+b) 否则 a=b b=temp 输出:c=2*(a+b)
否则 输出提示“please make a>b”
编写程序:运行结果
好了,今天的题目大家感觉如何呢?带着小朋友自己来试试吧。
{:5_148:}沙发 板凳
页:
[1]