[英]How to perform calculations for Fibonacci series in python or ruby?(without recursion)
我試圖在 Python 和 Ruby 語言中找到斐波那契數列的第 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
在紅寶石中
alpha = (1 + Math.sqrt(5)) / 2
beta = (1 - Math.sqrt(5)) / 2
((alpha ** n - beta ** n) / Math.sqrt(5)).round
使用 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
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.