有如下算法 第一步 使x=3,S=0 第二步 使x=x+2 第三步 使S=S+x 第四步 如果S>=2000,则执行第五步,否则返
问题描述:
有如下算法 第一步 使x=3,S=0 第二步 使x=x+2 第三步 使S=S+x 第四步 如果S>=2000,则执行第五步,否则返
答
先按我的理解将算法补全:
第一步 使x=3,S=0
第二步 使x=x+2
第三步 使S=S+x
第四步 如果S>=2000,则执行第五步,否则返回第二步
第五步 输出S
按以上理解,则在循环体(第3-4步)中,x依次取值5,7,9,...,S为以上x值之和.
第k次循环后,x = 3+2k,S = 5+7+9+...+(3+2k) = (5+(3+2k))*k/2 = k(k+4)
结束循环的条件是S>=2000,即k*(k+4)>=2000,k>=43
因此执行43次循环后结束,x=89,S=2021