Используя рекурсию, запрограммируйте функцию evenSum :: integral a => [a] -> A, которая возвращает сумму тех элементов списка чисел, которые четны (четны). evenSum [1,2,3,4] ~>* 6
evenSum [4,3,2,1] ~>* 6
evenSum [] ~>* 0
Поскольку мы хотим, чтобы вы запрограммировали функцию с рекурсии, в этой задаче вводятся следующие ограничения:
у вас нет фильтра, карта, concatMap, выражения производится, foldl, foldr1, foldl1, молния, zipWith, zip3, zipWith3 и сумма функций (некоторых других аналогичных функций от прелюдии, которые выходят за рамки данной статьи также отключаются);
60 Мбайт * 8 = 480 Мбит - размер файла в мегабитах
480 Мбит * 1024 = 491520 Кбит - размер файла в килобитах
491520 / 2 = 245760 Кбит - половина файла
245760 Кбит / 256 = 960 секунд - время передачи первой половины файла
245760 Кбит / (256 / 2) = 245760 Кбит / 128 = 1920 секунд - время передачи втораой половины файла
960 с + 1920 с = 2880 секунд - общее время передачи
В одной минуте 60 секунд:
2880 / 60 = 48 минут - передан весь файл
Задание №2
Переведем килобайты в биты: N = 3750кбайт = 30720000бит
Вычислим скорость передачи информации: V = 30720000/120
V = 256000 бит/c
9*3*N - не может быть больше 54, т.е.
N может быть только 1 или 2. По условию х>=10 -> N=2 (N -порядок числа).
Поэтому искать нужно среди чисел от 11 до 54. Решение - число 15.
var n,m: integer;
begin
write('n = '); readln(n);
if n=2 then
begin m:=11;
repeat
if (m mod 10)*(m div 10)*3=m then
begin
writeln('число: ',m);
m:=55;
end;
m:=m+1;
until m>54;
end
else writeln('нет решения');
end.