Нужно написать рабочий код для задачи в паскале.

0 голосов
26 просмотров

Нужно написать рабочий код для задачи в паскале.


image

Информатика (37 баллов) | 26 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadlnString('Введите 17-ричное число с последующей точкой:');
  var p:=Pos('.',s);
  if p=0 then Writeln('точка не найдена')
  else begin
    s:=Copy(s,1,p-1).ToUpper;
    if (s.All(c->c in ['0'..'9','A'..'G'])) then
      // написано корректно, проверем на нечет
      if s.Select(c->c<='9'?c.ToDigit:Ord(c)-Ord('A')+10).Sum.IsOdd<br>      then Writeln('Yes')
      else Writeln('No')
    else Writeln('No')
    end;
end.

Пример
Введите 17-ричное число с последующей точкой: 015C45Ef9a.xyz
Yes
(150k баллов)
0

Я использую сайт перевода чисел и то число оказывается не четно.

0

Я тоже видел это правило с суммой но написать программу исходя из него не смог

0

Завтра по идее должны исправить.