Считаем такие дроби, берем арккосинус, получаем угол в радианах. Можно умножить на 180/π, тогда получится угол в градусах.
По-хорошему, можно определить функцию, которая будет вычислять угол, тогда код будет опрятнее, понятнее, и в неём будет сложнее допустить ошибку. Но я этого делать не буду :)
Код (C++):
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
int main() {
double a, b, c;
std::cin >> a >> b >> c;
std::cout << acos((a * a + b * b - c * c)/(2 * a * b)) * 180/M_PI << " ";
std::cout << acos((c * c + b * b - a * a)/(2 * c * b)) * 180/M_PI << " ";
std::cout << acos((a * a + c * c - b * b)/(2 * a * c)) * 180/M_PI << " ";
17 байт
Объяснение:
Разбираемся с личным кодом:
Длина n=11 символов
15 букв + 10 цифр = 25 символов - мощность алфавита личного кода.
, где i - кол-во бит на символ
i = 5 бит (из неравенства выше)
V = i * n = 5 бит * 11 = 55 бит ≤ 7 байт
Разбираемся с кодом подразделения:
Длина n=8 символов
26 букв + 10 цифр = 36 символов - мощность алфавита кода подразделения
i = 6 бит
V = 8 * 6 бит = 48 бит ≤ 6 байт
Итого объем кодов в сумме равен V=7 + 6 байт = 13 байт
Объем хранящийся на пропуске равен 30 байтам
Объем доп информации 30 байт - 13 байт = 17 байт
117.725°, 23.8109°, 38.4643°
Объяснение:
Можно использовать теорему косинусов:
Считаем такие дроби, берем арккосинус, получаем угол в радианах. Можно умножить на 180/π, тогда получится угол в градусах.
По-хорошему, можно определить функцию, которая будет вычислять угол, тогда код будет опрятнее, понятнее, и в неём будет сложнее допустить ошибку. Но я этого делать не буду :)
Код (C++):
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
int main() {
double a, b, c;
std::cin >> a >> b >> c;
std::cout << acos((a * a + b * b - c * c)/(2 * a * b)) * 180/M_PI << " ";
std::cout << acos((c * c + b * b - a * a)/(2 * c * b)) * 180/M_PI << " ";
std::cout << acos((a * a + c * c - b * b)/(2 * a * c)) * 180/M_PI << " ";
}