易语言采用递推法解决斐波那契数列

xxx

.版本 2
.支持库 eCalc
 
.子程序 递推求数列子程序, 大数, , 根据给定的位置参数求出与位置相对应的数值
.参数 数列相应位置, 整数型, , 本次要计算的数在数列中的位置
.局部变量 临时大数, 大数, , , 定义数组第一位和第二位数字数值的变量
.局部变量 结果大数, 大数, , , 存储两数相加得到的结果
 
.如果真 (数列相应位置 = 0)  ' 如果是数列第一位数则返回0
    临时大数.导入数字 (0)
    返回 (临时大数)
.如果真结束
.如果真 (数列相应位置 = 1)  ' 如果是数列第二个数则返回1
    临时大数.导入数字 (1)
    返回 (临时大数)
.如果真结束
' 如果是第二位以后的数则等于它的前两位的和
结果大数 = 数列存储数组 [数列相应位置 - 1].加 (数列存储数组 [数列相应位置])
 
返回 (结果大数)

计算

窗口放置一个编辑框,输入计算的位数,一个超级列表框用来显示结果。

.版本 2
.支持库 eCalc
.支持库 iext
 
.子程序 _计算图形按钮_被单击
.局部变量 局部计次变量, 整数型, , , 几次循环中记录循环次数的变量
.局部变量 求得的数, 大数, , , 存储本次计算得到的数
.局部变量 项目索引, 整数型
 
显示超级列表框.全部删除 ()  ' 清空上一次查找的内容
清除数组 (数列存储数组)
输入的数列位数 = 到数值 (输入编辑框.内容)  ' 获取要查找多少位
.如果真 (输入的数列位数 > 10000)
    .如果真 (信息框 (“您输入的数值过大,处理数据时程序将会有一段时间无响应,是否继续?”, #是否钮 + #询问图标, “请问:”) ≠ #是钮)
        ' 如果不想等待很长时间则返回
        返回 ()
    .如果真结束
 
.如果真结束
.如果真 (输入的数列位数 < 0)  ' 只能输入正整数
    输入编辑框.内容 = “”
    返回 ()
.如果真结束
.计次循环首 (输入的数列位数, 局部计次变量)  ' 依次求出每位数按顺序加入数组
    求得的数 = 递推求数列子程序 (局部计次变量 - 1)
    加入成员 (数列存储数组, 求得的数)
.计次循环尾 ()
.计次循环首 (取数组成员数 (数列存储数组), 局部计次变量)  ' 把求出的所有数在编辑框中显示出来
    项目索引 = 显示超级列表框.插入表项 (, “第” + 到文本 (局部计次变量) + “个数是:”, , , , )
    显示超级列表框.置标题 (项目索引, 1, 数列存储数组 [局部计次变量].导出文本 ())
.计次循环尾 ()

发布日期:

所属分类: 易语言 标签: