ХОТЬ ГОТОВА ЗАПЛАТИТЬ Запрограммируйте функцию digitSum :: integer -> integer -> integer таким образом, чтобы digitsum base X был числовой суммой числа x в базе. Примечание.: числовые литералы, такие как 1234 или 5, находятся в десятичной системе счисления. Помните, что в Haskell можно вводить числа в шестнадцатеричной системе счисления, например: 0x1234.
Работайте только с неотрицательными числами. Можно предположить, что первый аргумент-база-будет положительным числом ≥ 2.
digitSum 10 1234 ~>* 10
digitSum 16 0x1234 ~>* 10 -- шестнадцатеричный ввод
digitSum 16 1234 ~>* 19 -- 4d2 в системе счисления с основанием 16, т. е. цифр [4, 13, 2]
digitSum 16 0x4d2 ~>* 19
digitSum 3 1234 ~>* 6
digitSum 4 0 ~>* 0
var
n,a,i,max,fl:integer;
begin
writeln('Введите кол-во участников>>');
readln(n);
max:=0; fl:=0;
for i:=1 to n do
begin
writeln('Введите кол-во правильных ответов, данных участником ',i);
readln(a);
if (a > max) then max:=a;
if a=0 then fl:=1;
end;
if fl=1 then writeln('YES') else writeln('NO');
writeln('Победитель набрал ',max,' ');
end.
Пример:
Введите кол-во участников>> 5
Введите кол-во правильных ответов, данных участником 1 15
Введите кол-во правильных ответов, данных участником 2 18
Введите кол-во правильных ответов, данных участником 3 0
Введите кол-во правильных ответов, данных участником 4 8
Введите кол-во правильных ответов, данных участником 5 10
YES
Победитель набрал