ответ с Объяснением:
23. По моему методу:
Запишем степени 2, начиная с 0 слева направо:
16 8 4 2 1
1 0 1 1 1
ответ: 10111₂
Под степенями записано сколько раз степень 2 влезет в число. Распишу на примере двоичной системы. У нас есть число 23. Максимальная степень 2 которая в это число влезет - 16. Она влезает в число 23 1 раз. Записываем 1, а на правые числа оставляем остаток. Было число 23, отняли 16 * 1, получилось 7. В семерку число 8 не влезает, поэтому пишем 0 раз и оставляем остаток: 7 - 8 * 0 = 7. Так же проделываем с остальными числами. Последнее число должно быть единицей - любое число в 0 степени. Нижние цифры и получились ответом - 10111₂, можете загуглить и проверить.
С шеснадцатеричной системой, как и с любой другой, все обстоит точно так же. Только в 16 системе добавляются цифры: А = 10, В = 11, С = 12, D = 13, E = 14, F = 15. Запишем степени числа 16 и решим пример:
16 1
1 7
ответ: 17₁₆
С восьмеричной системой все разумеется так же
8 1
2 7
ответ: 27₈
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int Pcount = 0; // На самом деле, особо и не нужен, нужен лишь для того, чтобы вывести
// строчку, что символ p не найден
int Count = 0; // счетчик для хранения количества не пустых строк
cout << "Entered string." << endl;
char *str = new char[500]; // Создаем динамический массив на 500 элементов
gets_s((char*)str, 500); // Функция, принимающая на ввод строку.
for (int i = 0; i < 500; i++) // Перебор символов в поиске 'p'
{
if (str[i] == 'p') //если i-тый элемент массива равен символу 'p', то проваливаемся дальше
{
Pcount++; // Инкриментируем, чтобы вывести все туже строчку о том, что символа p нету)))
for (int j = 0; j < i; j++) // перебираем символы для вывода. i - в этой строке указывает где был найден символ 'p'.
{
cout << str[j];
}
cout << endl;
break; // оператор выхода из цикла.
}
}
if (Pcount == 0) // Если символов p не вводилось, то Pcount будет равен 0
{
cout << "p is not found" << endl; // и выведеться эта строка.
}
cout << "Entered 5 string's" << endl;
for (int i = 0; i < 5; i++) // В этом цикле запрашиваем строку 5 раз
{
gets_s((char*)str, 500); // Функция принимающуя на ввод строку.
if (str[0] != '\0') // Этим условием мы проверяем первый элемент массива на нуль терминатор
// если он не равен нуль терминатору , то увеличиваем счетчик Count
{
Count++; //т.о он будет хранить кол-во не пустых строк.
}
}
cout << Count << endl; // выводим на экран кол-во не пустых строк
delete[] str;//освобождаем память
_getch();// Содержиться в conio.h (для того тобы окно не закрывалось)
return 0;
}