第3讲结构化程序设计及C语言语句资料.ppt

七、循环结构的应用示例 P128 例3.18 有一对兔子,出生后第3个月起每个月都生一对兔 子。小兔子长到第3个月后每个月又生一对兔子。假设所有 兔子都不死,问40个月的兔子总数为多少? 这是著名的费波那西(Fibonacci)数列: 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , …… 该数列的特点是: f1 = 1 ,f2 = 1 , fi = fi-1 + fi-2 ( i = 3, 4, 5, …… ) 由该数列可以导出著名的 “黄金分割率” 解题思路: 是计算出该数列的第40项 …… 第2次循环 初始值: f1=1,f2=1 循环计算:f1=f1+f2,f2=f2+f1;终止条件:in/2 书中(P128)的程序,用到的 “循环不变式” 为(每次计算2项): f1 = f1 + f2; f2 = f2 + f1; 循环初始值为:f1=1,f2=1; 循环终止条件为: in/2 该不变式适合于n为偶数的情况,但当n为奇数时会出问题! 思考题: 请你模仿前面的例3.14的方法,找到关于该问题求 解的另外一个“循环不变式”吗?且可以解决奇数问题! 1

文档评论(0)

1亿VIP精品文档

相关文档