Необходимо провести Робота по коридору шириной в одну клетку из начального положения (◊) до конца коридора, закрашивая при этом все клетки коридора, которые имеют выход. Выходы размером в одну клетку располагаются произвольно по всей длине коридора. Коридор заканчивается тупиком. Коридор имеет два вертикальных и диагональный участки в форме N Пример коридора показан на рисунке.
У нас есть количество бит. Чтобы понять, сколько вариантов чисел мы можем записать двоичным числом длинной в это количество бит, нужно количество вариантов для одной цифры возвести в степень количества бит: 2^10 = 1024. - ответ
P.S. На самом деле, это максимальное количество для данного количества бит. Но это же не значит, что мы будет использовать все цифры? Например, если у тебя в корзине лежит 1023 шарика, то меньше, чем 10 битами ты зашифровать один шарик не сможешь физически. А вот если из 512, то сможешь - девятью. (2^9 = 512) Поэтому правильней было бы задавать подобные ответы диапазонами. Например, для данного [513, 1024]. Но об этом редко кто задумывается.
#include <string.h>#include <locale.h>#include <math.h>#include <stdio.h>#define LANG 1 //Язык: 0 - английский; 1 - русскийsize_t kA = 0, ka = 0;int delta = (LANG) ? 'а' - 'А' : 'a' - 'A';void iter(char[], void(*)(char*), void(*)(char*));void incA(char* z = 0) { kA++; }void inca(char* z = 0) { ka++; }void changeA(char* ch);void changea(char* ch);int main() { setlocale(LC_ALL, "Russian"); char str[] = "ПихАЙ СЮДА ИСХОднУЮ СТРОКУ СИмволов"; iter(str, incA, inca); iter(str, changeA, changea); printf(str); return 0;}void iter(char str[], void(*trued)(char*), void(*falsed)(char*)) { for (size_t i = 0; i < strlen(str); ++i) { if (str[i] >= 'A' && str[i] <= 'Z' || str[i] >= 'А' && str[i] <= 'Я') trued(str+i); if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'а' && str[i] <= 'я') falsed(str + i); }}void changeA(char* ch) { if (kA < ka) { *ch = *ch + delta; }}void changea(char* ch) { if (kA > ka) { *ch = *ch - delta; }}
P.S. На самом деле, это максимальное количество для данного количества бит. Но это же не значит, что мы будет использовать все цифры? Например, если у тебя в корзине лежит 1023 шарика, то меньше, чем 10 битами ты зашифровать один шарик не сможешь физически. А вот если из 512, то сможешь - девятью. (2^9 = 512) Поэтому правильней было бы задавать подобные ответы диапазонами. Например, для данного [513, 1024]. Но об этом редко кто задумывается.