Объясняю: создаёте переменную, лучше целочисленную (int foo), после чего можно либо перевести число в строку и найти сумму цифр путём сложения двух символов (sum = bar[0] - '0' + bar[1] - '0'), либо с остатка от деления (конечно, это не очень красиво, но если известно, что число двузначное, то можно так: sum = (foo / 10) + (foo % 10)). Дальше банальная обработка условия: <если сумма чётная (if (sum % 2 == 0)), то увеличить число на 2 (foo += 2), иначе (else) уменьшить число на 2 (foo -= 2)>. После этого можете вывести результат на монитор (printf("%d\n", &sum)). :)
N= 2^{i}
"N" - мощность алфавита.
информационный вес символа алфавита "i"
#1. N=2 в степени i
Так как N=32, отсюда следует, что i=5 битам.
#2. По аналогии выше. Только теперь N=8. А 8 - это 2 в степени 3.
то есть i=3. 3 бита.
#3. 64 символа. (смотреть задачу 1). 2 в 6 степени.
#4. Определим, сколько бит занимает все сообщение.
1/512 Мбайт = 1024/512 = 2 Кбайт. (1 Мбайт = 1024 Кбайт);
2 Кбайт = 2 * 1024 = 2048 байт (1 Кбайт = 1024 байт);
2048 байт = 2048 * 8 = 16384 бит.
Текст состоит из 2048 символов ⇒ занимает 16384 бит ⇒ один символ занимает 16384 : 2048 = 8 бит = 1 байт.
Если для хранения 1 символа алфавита используют 8 бит, согласно формуле (смотреть выше) 2 ^ 8 = 256 символов.
ответ: размер алфавита - 256 символов.
Объясняю: создаёте переменную, лучше целочисленную (int foo), после чего можно либо перевести число в строку и найти сумму цифр путём сложения двух символов (sum = bar[0] - '0' + bar[1] - '0'), либо с остатка от деления (конечно, это не очень красиво, но если известно, что число двузначное, то можно так: sum = (foo / 10) + (foo % 10)). Дальше банальная обработка условия: <если сумма чётная (if (sum % 2 == 0)), то увеличить число на 2 (foo += 2), иначе (else) уменьшить число на 2 (foo -= 2)>. После этого можете вывести результат на монитор (printf("%d\n", &sum)). :)