浅谈算法问题里的循环结构.docx浅谈算法问题里的循环结构江苏省江都市大桥高级中学 陆平如果算法问题里涉及的运算进行了许多次重复的操作,且先示参与运算的数之间有相同的规律,就可引入变量循环参与运算(我们称之为循环变量),应用于循环结构。循环结构是算法问题里的难点,循环结构有当型结构(前测试)与直到型结构(后测试)两种,前者是先判断后操作,即在满足条件时进行循环体,否则跳过循环体,后者是直接操作,然后进行判断,如果满足条件,则退出循坏,否则继续循坏。这两种算法结构分别町川流程图表示为:后测试的直到型循环结构S<-0njn+2n<—n-2,1—/输也n/「一,当型循环与宜到型循环是可以和互转化的。如对描述解决问题“求使l2+32+52+-+n2<1000成立的最大正整数n的值”的算法,用当型循环结构可以表示为下面的开始S<-0n<-lS<-S+n2左图,而用直到型循环结构则町以表示为上面的右图;但要注意输出值的确定。如上面的两种算法,为什么最后输出结果的表达式不同?这里的输出结果既与n的初始值有关,也与循环结构有关。如对于当型循环,退出循环时对应的S具实是第一个使S21000的那个S,而这个S值得到后乂对n的值增加了2,所以,为了输出使S<1000成立的最人的n,就要将退出循环时的n的值减去4。为了准确写出输出的n值,可以使用“追踪法”。如上述当型循环,可以将1000改小一点,如30,即求使S<30成立的最大正整数n,可由S二0,n=lS=l,n二3;S=l2+3=10,n=5;S=l2+32+52=35;n二7;满足S〈30的最大n为3,而退出循环时的n为7,故输出的结果应为7-3。,还要注意根据条件设计合理的计数变量、累加和累乘变量及其个数等,特别要求条件的表述要恰当、精确。例:指出下列两个算法,最后的计算结果各上是什么(可以用式子表达)?算法一:第一步:使p=1;第二步:使i=3;第三步:p-pXi;第四步:i-i+2;第五步:若i<29,则返冋第三步,并继续执行后面笫四,第五步,否则算法结束。算法二:第一步:使p=10;第二步:使i=20;第三步:p—p+i;第四步:i—i+10;笫五步:若i<100,则返回笫三步,并继续执行后面第四,第五步,否则算法结束。解析:算法一中的第五步是iW29,包含29,因而最后一•个因数不是27而是29。而算法二中的第五步i<100,蝕后一个数不是100而是90,在设计算法时,要使语言尽最接近计算机能够读懂的语句,语句表达必须准确,是小于就是小于,是小于等于就是小于等于,两者的含义要区分好。语句中的-点点错误都会导致算法的错误,计算机若执行你的算法程序,最后就得不到你所期望的或预期的结果;再比如算法一屮的笫四步,若课写为i-i+1则最后输岀的结果将是1+3+4+…+29,而不是1+3+5+・•・+29。因此在设计算法时必须高度细心,每一个语句都必须仔细斟酌,力争不出一点差错,否则将会一着不慎,满盘皆输。因为它不同于解题过程,做对几步得几步的分,计算机只认指令行事,只认最后的结果。累加变量的值初始值一•般取成0,而累乘变量的初始值一般収成1。。如下面图1和图2中:图1中循环的箭头从图2中的在第二个处理框的下面改成了在笫一个处理框的下面,这样T的值就改变了此题13、 y=/W是关于x=3对称的奇函数,/(1)=l,cosx-sinx=^2,则/II%in2x」 :5 (兀、cos(x+—)14、 已知方程x2+(\+a)x+4+a=0的两根为x„x2,且0<x(<l<x2,则a的取值范围是_(-4,-3)_;415、 在ZMBC中,、、ZC的对边,若°、b、c成等差数列,sinB=-且AABC的53面积为一,则b=2216、 若对终边不在坐标轴上的任意角x,不等式sinx+cosx<m<tan2x+cot2x恒成立,则实数加的取值范闱是—[>/2,2] ;15、如图,一条螺旋线是用以下方法画成:\ABC是边长为1的正Bt角形,曲线CA],尙血,血去分别以4、B、C为圆心,】、/CA2为半径画的弧,Illi线CAS2A3称为螺旋线。[以4为圆心A/h为半径呦弧…,这样曲到第n圈,则所得螺旋右的长度/“= .(用兀表示即可)(x)=|x2-2ax+b|(xe/?),给出下列命题:®f(x)不可能为偶函数;②当,/(0)=/(2)时,/(x)的图彖必关于直线x=l对称 ③若a2-b<0,贝厅(x)在区间[a,+8)上是增函数;④/(力有最小值b-a\其屮正确命题的序号是 .13-若函心吕4Aa丰—的图象关于直线y=x对称,点A在以原点为圆心的圆周上依逆时钟方向做匀速圆周运动,已知点A从X轴正半轴岀发lmin转过&(Ov&v
浅谈算法问题里的循环结构 来自淘豆网m.daumloan.com转载请标明出处.