Pascal ABC. Ома решил придумать свой признак делимости ** 8. ОМА будет считать что число...

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

Pascal ABC. Ома решил придумать свой признак делимости на 8. ОМА будет считать что число делится на 8 если существует перестановка цифр числа такая что новое число было без лидирующих нулей и число делится на 8. Вас надо сказать делится ли число 8 по правилам ОМЫ. ФОРМАТ ВХОДНЫХ ДАННЫХВ первой строке дано цело число n(1<=n<=10 в третьей степени)длина числа. Во второй строка дана строка состоящая из цифр s-число которое надо проверить.ФОРМАТ ВЫХОДНЫХ ДАННЫХвыведите yes если число делится на 8 про правилам ОМЫ иначе no.Примеры2 Yes233 No101


Информатика (16 баллов) | 40 просмотров
Дан 1 ответ
0 голосов

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.

(64 баллов)