阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏

最全题库2022-08-02  62

问题 阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。【说明】本流程图用于计算菲波那契数列 {a1=1,a2=1,…,an=an-1+nn-2|n=3,4,…}的前n 项 ( n≥2) 之和 S。例如,菲波那契数列前6 项之和为 20。计算过程中,当前项之前的两项分别动态地保存在变量 A 和 B 中。【流程图】

选项

答案

解析 菲波那契数列的特点是首 2 项都是1,从第 3 项开始,每一项都是前两项之和。该数列的前几项为1, 1, 2 ,3,5,8,...。在流程图中,送初始值 1→A ,1→B 后,显然前2项的和 S 应等于2,所以(1)处应填 2 (或 A+B) 。此时2→i (i 表示动态的项编号),说明已经计算出前2项之和。接着判断循环的结束条件。显然当1=n时表示已经计算出前 n 项之和,循环可以结束了。 因此(2)处填n。判断框中用">"或"≤"的效果是一样的,因为随着i的逐步增 1, 只要有 i=n结束条件,就不会遇到 i>n 的情况。不过编程的习惯使循环结束条件扩大些, 以防止逻辑出错时继续循环。接下来 i+l →i 表示数列当前项的编号增1,继续往下计算。原来的前两项值(分别在变量 A 和 B 中)将变更成新的前两项再放到变量 A 和 B 中。首先可以用 A+B→B 实现(原A) + (原B) →(新 B) ,因此(3)处填A+B 。为了填新 A 值(原来的B值),不能用 B→A,因为变量B的内容已经改变为(原A)+(原B) ,而B-A 正是((原A) + (原B)) - (原A)  = (原B) ,因此可以用B-A→A 来实现新 A 的赋值。这样,(4) 处填 B-A 。最后应是前n项和值的累加(比原来的S值增加了新B值),所以 (5) 处应填S+B。填完各个空后,最好再用具体的数值来模拟流程图走几个循环检查所填的结果(这是防止逻辑上出错的好办法)。
转载请注明原文地址:https://tihaiku.com/congyezige/2427339.html

最新回复(0)