6. Неправильное сложение
Задача средней сложности на перебор, технику программирования.
Для описанного в задаче способа сложения выполняется свойство коммутативности, поэтому достаточно рассмотреть три варианта сложения трех чисел: `(a+b)+c`, `(a+c)+b` и `(b+c)+a`. Полученные три результата сортируем по возрастанию (для сравнения чисел, хранящихся в string, можно использовать выражение (length(s1)>length(s2)) or (length(s1)=length(s2)) and (s1>s2)), выбрасываем одинаковые результаты. Если остался один результат, выводим "NO", иначе "YES". Функцию для сложения двух чисел можно определить так:
function sum(s1,s2:string):string;
var r:string;
i,p:integer;
begin
{выравниваем числа по длине }
while length(s1)<length(s2) do s1:='0'+s1;
while length(s1)>length(s2) do s2:='0'+s2;
{ складываем }
r:='';
for i:=length(s1) downto 1 do
begin
p:=ord(s1[i])+ord(s2[i])-2*ord('0');
r:=chr(p mod 10+ord('0'))+r;
if p>=10 then
r:='1'+r;
end;
sum:=r;
end;