Переведем 31 в двоичную=11111-это число R Сказано,что оно на два разряда больше,чем исходное N Т.е. N=111|11=111 Прогоним 111 по данному алгоритму: 1)Число единиц не четно,значит добавляем 0>>1110 2)3/2=1,значит добавляем 1>>11101 Видим,что 11101<11111,значит исходное N увеличиваем на 1,получим 1000 Прогоняем по алгоритму 1000: 1)Число единиц нечетно,добавляем 0>>10000 2)Остаток от деления числа единиц=1,добавляем 1>>100001 Мы получили число 100001-это R.Оно больше,чем 11111. Переведем его(100001) в десятичную систему счисления=33 ответ:33
Сказано,что оно на два разряда больше,чем исходное N
Т.е. N=111|11=111
Прогоним 111 по данному алгоритму:
1)Число единиц не четно,значит добавляем 0>>1110
2)3/2=1,значит добавляем 1>>11101
Видим,что 11101<11111,значит исходное N увеличиваем на 1,получим 1000
Прогоняем по алгоритму 1000:
1)Число единиц нечетно,добавляем 0>>10000
2)Остаток от деления числа единиц=1,добавляем 1>>100001
Мы получили число 100001-это R.Оно больше,чем 11111.
Переведем его(100001) в десятичную систему счисления=33
ответ:33
struct node
{
string City;
string Date;
node *next;
};
node *head = NULL;
//Функция принимает строку с датой
void CitiesByDate(string Date)
{
node *List = new node;
List = head;
while (List != NULL)
{
if (Date == List->Date)
cout << List->City << endl;
List = List->next;
}
}
Пример:
"05.07.2010", "Moscow"
"05.07.2010", "Tallinn"
"06.08.2011", "NewYork"
"12.17.2009", "Berlin"
Вызов:
CitiesByDate(Date); //Date = 05.07.2010
Вывод:
Moscow
Tallinn