Program z1;var N,A,B,C,D:integer;beginreadln(N);A:=N div 1000;B:=(N div 100) - (N div 1000)*10;C:=(N div 10)- (N div 100)*10;D:=(N mod 10);n:=0;if (A mod 3)=0 then N:=N+A;if (B mod 3)=0 then N:=N+B;if (C mod 3)=0 then N:=N+C;if (D mod 3)=0 then N:=N+D;writeln(N); end.
Условие противоречит заданию. В момент ввода 0 программа завершает работу и одновременно спрашивает сколько введено нулей. Больше, чем один ноль не может быть!
Вот решение:
zero = 0
i = int(input())
while i != 0: i = int(input())
if i == 0: zero+=1print("Вы напечатали", zero, "ноль")
1. Для определения количества кластеров в данном случает потребуется сложить вес всех файлов: 200 + 1300 + 2400 + 2700 = 6600.
Теперь смотрим, сколько кластеров по 2048 потребуется:
2048 * 3 = 6144 - мало;
2048 * 4 = 8192 - в самый раз, и даже останется лишнего.
Ответ: 4 кластера
2. Задание выполняется аналогично заданию 1.
Считаем размер файлов: 800 + 8156 + 8900 + 14500 = 32356
Подсчитываем количество кластеров: 32356 / 8192 = 3.9, округляем в большую сторону до целого числа. 4.
Ответ: 4 кластера
3. Нам дан размер 1% жёсткого диска. Переведем 147483648 байт в гигабайты: 147483648 байт = 0,147483648 Гб.
Теперь нам осталось умножить это число на 100:
0,147483648 * 100 = 14,7 Гб.
Ответ: 14,7 Гб.
# Код на ruby 2.2.3p173
def zadanie(a)
a = a * 3 if a < 0
return a
end
# # Примеры применения
p zadanie(-8)
p zadanie(10)
p zadanie(0)