7
Объяснение:
k = 1 dat[1] = 12 12 > 12 (НЕТ) m = 0
k = 2 dat[2] = 15 15 > 12 (ДА) m = 1
k = 3 dat[3] = 17 17 > 12 (ДА) m = 2
k = 4 dat[4] = 15 15 > 12 (ДА) m = 3
k = 5 dat[5] = 14 14 > 12 (ДА) m = 4
k = 6 dat[6] = 12 12 > 12 (НЕТ) m = 4
k = 7 dat[7] = 10 10 > 12 (НЕТ) m = 4
k = 8 dat[8] = 13 13 > 12 (ДА) m = 5
k = 9 dat[9] = 14 14 > 12 (ДА) m = 6
k = 10 dat[10] = 15 15 > 12 (ДА) m = 7
Формула Бине:
При работе с типом double имеет место быть некоторая погрешность. При больших числах относительная погрешность стремится к 0.
Код:
7
Объяснение:
k = 1 dat[1] = 12 12 > 12 (НЕТ) m = 0
k = 2 dat[2] = 15 15 > 12 (ДА) m = 1
k = 3 dat[3] = 17 17 > 12 (ДА) m = 2
k = 4 dat[4] = 15 15 > 12 (ДА) m = 3
k = 5 dat[5] = 14 14 > 12 (ДА) m = 4
k = 6 dat[6] = 12 12 > 12 (НЕТ) m = 4
k = 7 dat[7] = 10 10 > 12 (НЕТ) m = 4
k = 8 dat[8] = 13 13 > 12 (ДА) m = 5
k = 9 dat[9] = 14 14 > 12 (ДА) m = 6
k = 10 dat[10] = 15 15 > 12 (ДА) m = 7
Формула Бине:
При работе с типом double имеет место быть некоторая погрешность. При больших числах относительная погрешность стремится к 0.
Код:
#include <iostream>#include <cmath>#define sqrt5 sqrt(5)#define (1 + sqrt5)/2#define n (1 - sqrt5)/2long long fibBinet(int n) { return (long long) round((pow(, n) - pow(n, n)) / sqrt5);}int main() { long long binet77 = fibBinet(77); std::cout << "fibBinet(77) = " << binet77 << " (5527939700884757)" << std::endl; std::cout << "A = " << abs(5527939700884757ll - binet77) << std::endl; std::cout << "B = " << 5527939700884757ll / binet77 << std::endl; return 0;}