Чтобы перевести число из десятичной системы в двоичную надо:
целую часть числа делить на 2 нацело, до тех пор пока получившееся неполное частное не станет меньше 2, а затем, начиная с последнего неполного частого (оно всегда будет 1), записать остатки от каждого деления в порядке, обратном получению.(смотри приложение 1);
дробную часть надо умножить на 2, до тех пор пока в дробной части не получится ноль либо не определится период либо до указанной точности, затем выписываем получившиеся целые части в порядке их получения. следует помнить, что умножаем только дробную часть. (смотрит приложение 2) В примере точность не указана и потому я решала до 12 знака
54,677≈1001010,101011010101....
#include <iostream>
#include <stack>
using namespace std;
void solve(string &s){
stack<char> cur;
for(int i = 0; i < s.size(); i++){
if(!cur.empty() && ((cur.top() == '(' && s[i] == ')') || (cur.top() == '{' && s[i] == '}') || (cur.top() == '[' && s[i] == ']')))
cur.pop();
else cur.push(s[i]);
}
if(cur.empty()) cout << "YES";
else cout << "NO";
}
signed main() {
string str;
cin >> str;
solve(str);
}
Программа написанная в фото проверенна