С ПОДРОБНЫМ РЕШЕНИЕМ 1 Перевести А и В (таблица 2.5) из десятичной системы в 8-разрядные прямой, обратный и дополнительный коды. 2 Перевести числа С и D (таблица 2.5) из десятичной системы двоично-десятичный код. 3 Выполнить сложение чисел А и В в прямом, обратном и дополнительном коде. Проверить правильность выполнения переводом ответа в десятичное представление. 4 Выполнить сложение чисел С и D в двоично-десятичном коде. Проверить правильность выполнения переводом ответа в десятичное представление.
Формула Бине:
При работе с типом 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;}