Строка вводится с клавиатуры(максимум 99 символов). Первое слово должно быть с маленькой буквы или первая и последняя буквы этого слова не должны совпадать(иначе такое слово как Test не засчитается). Также будет засчитываться одна буква(abc d efg, буква d подходит, так как она и первая и последняя)
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
#include <cstring>
using std::strtok;
using std::strlen;
int main()
{
char a[100], *ptr;
cout << "Enter the string:" << endl;
cin.getline(a, 100);
cout << endl;
ptr = strtok(a, "., ");
while(ptr)
{
if(*ptr == *(ptr + strlen(ptr) - 1))
{
cout << ptr << ' ';
}
ptr = strtok(NULL, "., ");
}
cout << endl;
return 0;
}
Для начала давайте определим сколько памяти требуется для хранения одного символа. Для этого вспомним главную формулу информатики
Здесь i — количество бит на 1 символ, а N — количество различных символов. По условию задачи у нас всего 26 символов, значит подставим вместо N число 26 и получим
Теперь нужно понять чему равно i. Если i = 4, то 2 4 = 16. Т. е. 4 бита на 1 символ позволит закодировать 16 символов, а у нас их 26. Маловато будет.
Если i=5, то 2 5 = 32. На наши 26 символов этого хватит. Значит на 1 символ у нас будет приходится 5 бит информации.
Так как в пароле у нас 7 символов, то на 1 пароль потребуется 7*5 =35 бит памяти. В байтах это будет 35/8 = 4,375. Округлим в большую сторону (так как по условию «для
каждого пользователя в системе хранятся дополнительные сведения, для чего выделено целое число байт») и получим, что на хранение пароля пользователя требуется 5 байт памяти.
Так как на 30 пользователей отводится 600 байт памяти, то на одного пользователя требуется 600/30 = 20 байт памяти. Из них 5 байт отводится для пароля. Следовательно для дополнительных сведений остается 20 — 5 = 15 байт.