• Pascal ABC.

    Ома решил придумать свой признак делимости на 8. ОМА будет считать что число делится на 8 если существует перестановка цифр числа такая что новое число было без лидирующих нулей и число делится на 8. Вас надо сказать делится ли число 8 по правилам ОМЫ.

    ФОРМАТ ВХОДНЫХ ДАННЫХ

    В первой строке дано цело число n(1<=n<=10 в третьей степени)длина числа. Во второй строка дана строка состоящая из цифр s-число которое надо проверить.

    ФОРМАТ ВЫХОДНЫХ ДАННЫХ

    выведите yes если число делится на 8 про правилам ОМЫ иначе no.

    Примеры

    2 Yes
    23


    3 No
    101

Ответы 1

  • var a:STRING;

    i,n,j,k,x,z,y:integer; d:boolean;

    begin

    readln(n);

    read(a);

    d:=false;

    if (n=1)and (a='8') then d:=true;

    if n=2 then begin

    x:=ord(a[1]) - 48;

    y:=ord(a[2]) - 48;

    if((x*10+y) mod 8=0) or

     ((y*10+x) mod 8=0) then d:=true;

    end

    else

    begin

    for i:=1 to N-2 do

    for j:=i+1 to N-1 do

    for k:=i+2 to N do

    begin

    x:=ord(a[i])-48;

    y:=ord(a[j])-48;

    z:=ord(a[k])-48;

    if((x*4+y*2+z) mod 8=0) or

     ((y*4+x*2+z) mod 8=0) or

     ((y*4+z*2+x) mod 8=0) or

     ((x*4+z*2+y) mod 8=0) or

     ((z*4+y*2+x) mod 8=0) or

     ((z*4+x*2+y) mod 8=0) then d:=true;

     end; end;

     if d then write('YES') else write('NO');

     end.

    • Автор:

      monkey58
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years