用于确定某个数字是否在smon中的斐波那契数字?

时间:2014-10-01 11:53:49

标签: sml

我需要在sml中编写一个函数,它接受一个数字并确定它是否是斐波纳契数。 我已经完成了斐波纳契函数

fun fib 1=0
  | fib 2=1
  | fib n= fib (n-1)+fib(n-2);

但我想不出第一个?你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可能会帮助你。

fun isfib 0 = true
  | isfib x =
    let
      fun help (i,j) = if j >= x then x = j else help (j,j+i)
    in
      help (0,1)
    end

我创建了一个辅助函数,正向生成序列,直到我看到一个大于或等于我感兴趣的数字的数字。然后我测试看看该斐波纳契数是否等于x。