1) 2304 КБайт
2) 5625 КБайт, видеокарта на 64 МБайт
3) 112,5 МБайт
Объяснение:
Задача 1:
16 777 216 = 2^i, i = 24
I = 1024 * 768 * 24 = 2^10 * 3 * 2^8 * 24 битов =
= 72 * 2^18 битов = 72 * 2^15 байтов = 72 * 2^5 Кбайт = 72*32 КБайт =
= 2304 КБайт
Задача 2:
16 777 216 = 2^i, i = 24
I = 1600 * 1200 * 24 = 100 * 2^4 * 75 * 2^4 * 24 битов =
= 25 * 2^2 * 2^4 * 75 * 2^4 * 3 * 2^3 битов = 25*75*3* 2^13 битов = 5625* 2^10 байтов = 5625* 2^0 Кбайт = 5625 КБайт ≈ 5,5 МБ
Подойдет видеокарта на 64 Мбайт.
Задача 3:
75 Гц, значит в одной секунде 75 кадров.
Объем данных, передаваемых в секунду от видеопамяти к монитору:
75 * 16 * 1024 * 768 = 75 * 2^4 * 2^10 * 3 * 2^8 = 225 * 2^22 битов =
= 225 * 2^19 байт = 225 * 2^9 КБайт = 112,5 * 2^10 КБайт = 112,5 * 2^0 МБайт = 112,5 МБайт
a = input()
print(a[-1:] if int(a) % 2 == 0 else a[-2:-1])
Объяснение:
1) Введем число как строку.
2) Конструкция "действие1 if условие1 else действие2" (она еще называется тернарным оператором) выполняет действие1, если условие1 возвращает True, иначе выполняется действие2. Это уменьшает количество строк кода с четырех до одной.
3) Выражение s[a:b] вернет все символы в строке s в диапазоне [a; b). Выражение s[a:] вернет все символы в строке s от a до конца строки. Если a или b отрицательные, то отсчет будет вестись с конца строки. Выражение s[-1:] вернет все символы в строке, начиная с последнего (т.е., последний символ). Ну а s[-2:-1] вернет все символы с предпоследнего до последнего, исключая последний (т.е., предпоследний символ).
begin
var a:=ReadReal();
writeln('S=',0.25*sqrt(a*a/3)*a);
writeln('P=',2*sqrt(a*a/3)+a);
end.