我在Ruby上编码了斐波那契序列:
n=40
def fibonacci (n)
if n == 1
1
elsif n == 2
1
else
fibonacci(n-1) + fibonacci(n-2)
end
end
puts "#{n}'s fibonacci value is #{fibonacci(n)}"
我需要添加什么代码才能让用户选择他们要查找的序列部分,例如:n = 35?我正在使用MAC终端进行测试
Ruby可以以各种形式从用户那里获取输入,但最简单的是通过ARGV
,它封装了命令行参数。
首先,让我们使用Ruby灵活的case
语句清理实现:
def fibonacci(n)
case (n)
when 1,2
1
else
fibonacci(n-1) + fibonacci(n-2)
end
end
然后将命令行参数的输入提供给函数。请注意,命令行输入始终是字符串,因此需要使用qazxsw poi将它们转换为整数:
.to_i
然后你这样称呼它:
n = ARGV[0].to_i
puts "#{n}'s fibonacci value is #{fibonacci(n)}"