清华大学出版社 RESS ①y不能被 4整除 非闰年 ⑧ y被100 ②y被4整除, 整除,又能 但不能被100 被400整除 整除 闰年 闰年 ④其他 非闰年 图2.1
图 2.1
清华大学出版社 TSINGHUA UNIVERSITY PRESS 从图2.1可以看出:“其他”这一部分,包括能被4 整除,又能被100整除,而不能被400整除的那些 年份(如1900年),是非闰年。 在考虑算法时,应当仔细分析所需判断的条件,如 何一步一步缩小被判断的范围。有的问题,判断 的先后次序是无所谓的,而有的问题,判断条件 的先后次序是不能任意颠倒的,读者可根据具体 问题决定其逻辑
从图2.1可以看出:“其他”这一部分,包括能被4 整除,又能被100整除,而不能被400整除的那些 年份(如1900年) ,是非闰年。 在考虑算法时,应当仔细分析所需判断的条件,如 何一步一步缩小被判断的范围。有的问题,判断 的先后次序是无所谓的,而有的问题,判断条件 的先后次序是不能任意颠倒的,读者可根据具体 问题决定其逻辑
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例2.4求1-1/2+1/3-1/4+.+1/99-1/100。 算法可以表示如下: S1:1=>sign S2:1=>sum S3: 2=>deno S4:(-1)X sign=>sign S5:signX(1/deno)=>term S6:sum+term=>sum S7:deno+1=>deno S8:若deno≤100返回S4;否则算法结束
例2.4 求1-1/2+1/3-1/4+.+1/99-1/100。 算法可以表示如下: S1:1=>sign S2:1=>sum S3:2=>deno S4:(-1)×sign=>sign S5:sign×(1/deno)=>term S6:sum+term=>sum S7:deno+1=>deno S8:若deno≤100返回S4;否则算法结束
清华大学出版社 TSINGHUA UNIVERSITY PRESS 在步骤S1中先预设sign(代表级数中各项的符号, 它的值为1或-1)。在步骤S2中使sum等于1,相当 于已将级数中的第一项放到了sum中。在步骤S3中 使分母的值为2。在步骤S4中使sign的值变为-1。 在步骤S5中求出级数中第2项的值-1/2。在步骤S6 中将刚才求出的第二项的值-1/2累加到sum中。至 此,sum的值是1-1/2。在步骤S7中使分母deno的 值加1(变成3)。执行S8步骤,由于deno≤100, 故返回S4步骤,sign的值改为1,在S5中求出term 的值为13,在S6中将1/3累加到sum中。然后S7再 使分母变为4。按此规律反复执行S4到S8步骤,直 到分母大于100为止。一共执行了99次循环,向 sum累加入了99个分数。sum最后的值就是级数的 值
在步骤S1中先预设sign(代表级数中各项的符号, 它的值为1或-1)。在步骤S2中使sum等于1 ,相当 于已将级数中的第一项放到了sum中。在步骤S3中 使分母的值为2。在步骤S4中使sign的值变为-1。 在步骤S5中求出级数中第2项的值-1/2。在步骤S6 中将刚才求出的第二项的值-1/2累加到sum中。至 此,sum的值是1-1/2。在步骤S7中使分母deno的 值加1(变成3)。执行S8步骤,由于deno≤100, 故返回S4步骤,sign的值改为1,在S5中求出term 的值为1/3,在S6中将1/3累加到sum中。然后S7再 使分母变为4。按此规律反复执行S4到S8步骤,直 到分母大于100为止。一共执行了99次循环,向 sum累加入了99个分数。sum最后的值就是级数的 值
清华大学出版社 TSINGHUA UNIVERSITY PRESS 例2.5对一个大于或等于3的正整数,判断它是不是 一个素数。 所谓素数,是指除了1和该数本身之外,不能被其他 任何整数整除的数。例如,13是素数,因为它不 能被2,3,4,.,12整除。 判断一个数n(n≥3)是否素数的方法是很简单的:将n 作为被除数,将2到-1)各个整数轮流作为除数, 如果都不能被整除,则n为素数。 算法可以表示如下: S1:输入n的值 S2:2=>i(i作为除数) S3:n被除,得余数r
例2.5 对一个大于或等于3的正整数,判断它是不是 一个素数。 所谓素数,是指除了1和该数本身之外,不能被其他 任何整数整除的数。例如,13是素数,因为它不 能被2,3,4,.,12整除。 判断一个数n(n≥3)是否素数的方法是很简单的:将n 作为被除数,将2到(n-1)各个整数轮流作为除数, 如果都不能被整除,则n为素数。 算法可以表示如下: S1:输入n的值 S2:2=>i (i作为除数) S3:n被i除,得余数r