Решить на любом языке программирования
непустая строка, содержащая некоторое слово, называется палиндромом, если это слово одинаково читается как слева направо, так и справа налево. пусть дана строка, в которой записано слово s, состоящее из n прописных букв латинского алфавита. вычёркиванием из этого слова некоторого набора символов можно получить строку, которая будет палиндромом. требуется найти количество вычёркивания из данного слова некоторого (возможно, пустого) набора символов таких, что полученная в результате строка являлась палиндромом различающиеся порядком вычёркивания символов, считаются одинаковыми.
ограничения: 1 < = n < = 60.
var
a, chet, nechet : integer;
begin
write('введите число: ');
readln(a);
while a > 0 do begin
if (a mod 10) mod 2 = 0then chet += 1 else nechet += 1;
a := a div 10;
end;
writeln('четных: ', chet);
writeln('не четных: ', nechet);
end.
программа считает 0 как четное число. Если нужно что бы 0 не учитывался при подсчете то необходимо строку:
if (a mod 10) mod 2 = 0then chet += 1 else nechet += 1;
заменить на:
if a mod 10 <> 0 then if (a mod 10) mod 2 = 0then chet += 1 else nechet += 1;
Я обращусь к низкоуровневому C++. У него нет типа byte, зато аналог ему - это unsigned char. Напишем простенькую программу:
#include <iostream>int main() { std::cout << sizeof(unsigned char); return 0;}Выполним её и получим ответом число 1.
Что это и откуда оно взялось?sizeof - это оператор, принимающий какой-то тип или переменную и возвращающий количество байт, занимаемое в памяти этой переменной. Грубо говоря - Вы просите швею измерить Вашу талию: даёте ей измерить себя, а в ответ получаете обхват талии. Отсюда и выходит ответ, что занимаемое место в памяти типом byte равняется 1 байту.
Более глубокое объяснение происхождения числа 1Нам понадобится формула , где N - это количество информации, а i - количество бит, отведённое на неё. У нас есть промежуток - это значения от 0 до 127. Всего значений получается 128. Если не верите - пересчитайте. Итак, подставим:
Мы получили количество бит, которое впритык занимает переменная в памяти. К радости, компьютеры устроены так, что память не делится на выделяемое переменной пространство (не создаются ячейки по 7 бит, 9 бит, 11 бит и так далее). Если программа выделила под переменную 7 бит, то компьютер выделит 2³ бит (8 бит ⇒ 1 байт), в котором переменная будет хорошо себя чувствовать и не тесниться. Приведу ещё пример для ясности:
Если переменная занимает 122 бита (это фантастика, но для примера сойдёт), то выделится 2⁷, поскольку:
2⁶ < 122 < 2⁷. Почему не 2⁶? Было бы смешно, если переменная, которая занимает 122 бит, занимала бы ячейку памяти в 64 бит. Это то же самое, если бы Вы поместили слона в коробку из-под спичек. Почему не 2⁸ или, например, не 2⁹⁹⁹⁹⁹⁹? А зачем компьютеру выделять такое пространство, если можно выделить наименьшее и быть в плюсе? Это то же самое, если бы Вы выделили для муравья десятиэтажный дом.
ответ1 байт