Быстрый метод для быстрого вычисления Фибоначчи, используя свойство Matrixстратегии, чтобы понять код, который я не могу получить
Divide_Conquer_Fib(n) {
i = h = 1;
j = k = 0;
while (n > 0) {
if (n%2 == 1) { // if n is odd
t = j*h;
j = i*h + j*k + t;
i = i*k + t;
}
t = h*h;
h = 2*k*h + t;
k = k*k + t;
n = (int) n/2;
}
return j;
}
Как я понимаю этот код? Какова была бы ваша стратегия? Не могли бы вы добавить множество операторов печати, чтобы увидеть, как изменяются состояния переменных? Важно понять, как разум различных разработчиков будет понимать этот код.
Я бы посмотрел, как он работает для 1,2,3,2n, 2n + 1, поскольку этот алгоритм работает на четном и нечетном. И я бы использовал бумагу и ручку вместо printf – Jekyll
Я бы взял лист бумаги и «запустил функцию», используя мой карандаш для очень простого случая. – JoeC
Этот вопрос кажется не по теме, потому что он просит мнения программиста и заявив, что «важно видеть, как разумы разных разработчиков пойдут на понимание этого кода», что значительно отличается от темы для этого сайта. –