用循环语句设计程序的途径我们知道编写程序的基本方法是“自上而下,逐步求精”,即先把一个复杂的大问题分解为若干相对独立的小问题,然后对每一个小问题编写出一个功能相对独立的程序块,最后再统一组装,这样编写的程序具有结构清晰的特点
而在程序设计中,我们经常会遇到需要对一条或一组语句重复执行多次,以最终完成某项任务的问题,对这类题处理的一个特点是对不同的运算对象进行若干次相同的运算或处理,这种处理模式在程序设计中是用循环结构来实现的,那么怎样才能用循环语句实现这种程序设计,下面介绍几个常用方法
一列举法这种方法就是根据提出的问题,列举所有可能的情况,并用问题提出的条件检验哪些是需要的,哪些是不需要的,对需要的保留,对不需要的剔除
对于不定方程的求解常用列举法
例1、在《张丘建算法》中有一个很有影响的不定方程问题,即“百钱买百鸡”,其意思是:一只公鸡价为5钱,一只母鸡价为3钱,三只小鸡价为1钱,要想用100钱买100只鸡,问公鸡、母鸡、小鸡可各买几只
分析:(1)先建方程:设x,y,z分别代表公鸡,母鸡,小鸡数,x+y+z=100则5x+3y+z/3=100(2)确定变量范围:若100钱全买公鸡最多买20只,所以x∈[0,20]且x∈N
同理,y∈[0,33]且y∈N,x,y确定后小鸡的只数z=100-x-y也确定
(3)解不定方程,应先固定一个变量的值,然后其他两个变量的值一一列举如x=0,y=0,z=100y=1,z=99……y=33,z=67当x=1时,再对y,z的值进行一一列举,直到y,z的值一一列举完,再取x=2,重复进行上述过程
这时x,y,z是一组满足“百鸡”的解是否也满足“百钱”还当检验,满足则为解,否则删除
用心爱心专心解:程序如下:x=0whilex