Re: кАк таки решить ?

From
Andrew Ezhguroff ()
To
Boris Pihtin
Date
2002-12-12T06:28:43Z
Area
RU.ALGORITHMS
From: "Andrew Ezhguroff" <eandr@com2com.ru>

Привет! "Boris Pihtin" <Boris.Pihtin@f408.n469.z2.fidonet.org>  сообщил(а):

 BP> Надо это сделать с помощью математических преобразований без проверок
 BP> ...

Какие именно математические преобразования допустимы? Если есть ф-ция SIGN,
то можно, например, так:

a1:=x div 1000;
a2:=(x div 100) mod 10;
a3:=(x div 10) mod 10;
a4:=x mod 10;

x1:=1-sign((a1+a2*10+a3*100) mod 111);
x2:=1-sign((a1+a2*10+a4*100) mod 111);
x3:=1-sign((a1+a3*10+a4*100) mod 111);
x4:=1-sign((a2+a3*10+a4*100) mod 111);

Result:= (x1+x2+x3+x4) mod 3;

Кстати, последняя строчка решает проблему четверки в варианте Oleg V.Cat.

С уважением, Андрей.


-- 
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
 * Origin: Talk.Mail.Ru (2:5020/400)