Перевожу всё в двоичную:
10110101 + 11001 + 100011 + 10110 = 100000111
Перевожу в 8-ую:
100000111₂ = 407₈
36₁₀ -> 100100₂ -> 44₈ -> 36₁₀ -> 24₁₆ -> 100100₂ -> 36₁₀
Действия:
1) 36₁₀ -> 100100₂
36 / 2 = 18 (остаток от деления 0)
18 / 2 = 9 (остаток от деления 0)
9 / 2 = 4 (остаток от деления 1)
4 / 2 = 2 (остаток от деления 0)
2 / 2 = 1 (остаток от деления 0)
Все результаты снизу вверх (последний результат вычисления + остатки)
2) 100100₂ -> 44₈
Берем первые три числа: 100,
0 * 2^0 + 0 * 2^1 + 0 * 2^2 = 4
Берем следующие три числа: 100, следовательно опять 4
3) 44₈ -> 36₁₀
44 переводим в двоичную, затем в десятичную.
4) 36₁₀ -> 24₁₆
36 переводим двоичную, затем в шестнадцатеричную
5) 24₁₆ -> 100100₂
4 - это 100. Для одного числа в ₁₆ нужно 4 числа в ₂ , следовательно 0100
2 - это 10. В итоге 10 + 0100 = 100100. Всё верно
6) 100100₂ -> 36₁₀
Читаем слева направо ₂ число. 0*2^0 + 0*2^1 + 1*2^2 + 0*2^3 + 0*2^4 + 1*2^5 = 36
ПРИКОЛЮХА:
Проверил, код работает!
Если будут вопросы - написать в комменты, отвечу.
P. S.
n - кол-во столбцов
m - кол-во строк.
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n, m;
cin >> m >> n;
bool isDot = true, isA = !(n % 2) and !(m % 2) or n % 2 and !(m % 2);
vector<vector<char>> v(n, vector<char>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if(isDot)
v[i][j] = '.';
else v[i][j] = '*';
isDot = isDot xor 1;
}
if(isA) isDot = isDot xor 1;
}
for(auto& i: v){
for(auto j: i)
cout << j << ' ';
cout << endl;
}
return 0;
}
20)
b := x - a;
y := sqrt(b*b) * sqr(ln(abs(b))) + b * exp(b);
22)
b := x * x - a * a;
y := tan(b) + sqrt(abs(b)) * sin(b);