Для решения задачи используется формула Хартли: N = 2^i или i = log(2)N
Количество целых чисел в диапазоне [5..20] - 16 (20-5+1=16).
Количество информации об угаданном числе = log(2)16 = 4 бита (2^4=16).
У нас есть три числа: 7, 11, 2001.
В римской системе счисления использовались такие цифры:
I - 1
V - 5
X - 10
L - 50
C - 100
D - 500
M - 1000
В римской системе принцип записи числа - повторение простых цифр, причем записываются в начале большие, после меньшие, значение оного является сумой всех записаных:
I - значит 1
II - значит 1 + 1 = 2.
VI - значит 5 + 1 = 6
Так же есть правило, что если меньшая цифра стоит перед большей, то из большой вычитаем меньшую, это необходимо для избежания большого кол-ва повторений. Пример:
IIII = 1 + 1 + 1 + 1 = 4
IV = (-1) + 5 = 5 - 1 = 4
Второй вариант записи короче, по этому его и используют.
Теперь необходимо использовать правильную их комбинацию для записи чисел.
7 = VII
11 = XI
2001 = MMI
Полный ответ записаный в строку имеет вид:
VII.XI.MMI
Спасибо за отметку "Лучший ответ" и нажатую кнопочку "Спасибо" - тут и в моем профиле. Яркого вам настроения!
#include <iostream>
#include <cmath>;
using namespace std;
int main() {
double a,b,k,B,Y;
cout << "a,b,k: " << endl;
cin >> a >> b >> k;
B=((a-b)/k); B*=B;
Y=B*B*B-sqrt(abs(B-k));
cout << "B= " << B << " Y=" << Y << endl;
return 0;
}
есть число 126.
2⁷=128, это больше 126, значит нам оно не нужно
2⁶=64 , меньше 126, подходит
126-64=62
2⁵=32 меньше 62, подходит
62-32=30
2⁴=16, меньше 30, подходит
30-16=14
2³=8, меньше 14, подходит
14-8=6
2²=4, меньше 6, подходит
6-4=2
2¹=2, равно 2, подходит
2-2=0
2⁰=1, больше 0, не подходит
получаем 126=1*2⁶+1*2⁵+1*2⁴+1*2³+1*2²+1*2¹+0*2⁰
Двоичное число 1111110