Так что я смотрю на код, который является более эффективным калькулятором фибоначчи, но я не понимаю, что означает возврат fiboux (n) [0]. Я пытаюсь преобразовать его в java, и у меня его почти нет, но я не понимаю эту часть. Спасибо!Что означает фибо (n) [0] в python?
def fib(n):
## Handle special case when n == 0
if n == 0:
return 0
## General case, return the first of the
## two values returned by fibaux
else:
return fibaux(n)[0]
## Auxiliary function
## Return the nth and (n-1)th Fibonacci numbers
## n must be an integer >= 1
def fibaux(n):
## Base case of for recursion
if n == 1:
return 1, 0
else:
## Recursive case
f2, f1 = fibaux(n - 1)
return f2 + f1, f2
Хорошо спасибо, ребята! Я понимаю, что сейчас, но я предполагаю, что я не был на правильном пути в преобразовании это Java, потому что я не получаю правильные выходы, это то, что я писал:
public class Fibonacci {
public static int[] fib(int number){
if (number == 0){
return new int[] {0};
}
else{
int fibauxArray[] = fibaux(number);
int f3 = fibauxArray[0];
return new int[] {f3};
}
}
public static int[] fibaux(int number){
if (number == 1){
return new int[] {1, 0};
}
else{
int[] Q = fibaux(number-1);
int f2 = Q[0]+Q[0];
int f1 = Q[0];
return new int[] {f2, f1};
}
}
Есть предложения? Еще раз спасибо.
Он возвращает первый элемент кортежа, возвращаемый функцией 'fibaux'. – Maroun