числа Люка являются числами в последовательности, определенной следующим образом:Как рассчитать номер Лукаса?
L(n) = 2 if n = 0
L(n) = 1 if n = 1
иначе
L(n) = L(n - 1) + L(n - 2)
Вот мой код:
public class Lucas {
public static int lucasnum(int n) {
if (n >= 0) {
if (n == 0)
return 2;
else if (n == 1)
return 1;
else
return lucasnum(n - 1) + lucasnum(n - 2);
}
else{
if (n == 0)
return -2;
else if (n == -1)
return -1;
else
return lucasnum(n + 1) - lucasnum(n + 2);
}
}
public static void main(String[] args) {
System.out.println(Lucas.lucasnum(-5));
}
}
Но у меня есть некоторые проблемы с отрицательным числом. Если n == -5
необходимо отправить -11
, но мой код выше возвращается 3
.
Okey, tks! Подобно @pbabcdefp – Khuong
Я знаю, он бил меня за секунды. :( – Rohcana
Есть ли какой-либо способ быстрее с сортировкой завершенное время? – Khuong