我试图在Python和Ruby语言中找到Fibonacci系列的第n个术语,但是我无法获得预期的输出。谁能帮帮我吗? 我的问题是,他们会在第n个学期给我第一个和第二个学期,然后找到我的第n个学期。
我的Python程序:
num1=int(raw_input())
num2=int(raw_input())
num=int(raw_input())
for i in range(3,num+1):
sum=num1+num2
num1=num2
num2=sum
print sum
我的Ruby程序:
num1=gets.to_i
num2=gets.to_i
num=gets.to_i
for i in 3..num:
sum=num1+num2
num1=num2
num2=sum
print sum
示例输入
0 1 5
示例输出
5
答案 0 :(得分:4)
在Ruby中
alpha = (1 + Math.sqrt(5)) / 2
beta = (1 - Math.sqrt(5)) / 2
((alpha ** n - beta ** n) / Math.sqrt(5)).round
答案 1 :(得分:0)
使用Python。
您有两个连续数字的斐波那契数字num1和num2。让我们调用num2 i的位置。您希望在位置i + n处找到序列的项(其中n在您的情况下为num)。按照您的代码,这可行:
num1 = int(raw_input())
num2 = int(raw_input())
num = int(raw_input())
for i in range(1, num+1):
sum = num1 + num2
num1 = num2
num2 = sum
print sum
输入
0 1 5
输出
8
如果您只想找到序列的第n个术语,可以使用此函数:
def f(n):
num1, num2 = 0, 1
for _ in range(1, n+1):
num1, num2 = num2, num1+num2
return num2
答案 2 :(得分:0)
Ruby版本已经关闭:
num1=gets.to_i
num2=gets.to_i
num=gets.to_i
for i in 3..num # no :
sum=num1+num2
num1=num2
num2=sum
end # explicit end
print sum