Помогите написать программу в паскале с решением ребус A+AB+ABC=BCB

1

Ответы и объяснения

  • Участник Знаний
2014-03-27T01:12:04+04:00
Число АВС может принимать значение от 123 до 987
Исходя из этого пишем программу
var
   Ast,Bst,Cst,s:string;
   i,A,AB,ABC,BCB:integer;
   f:boolean;                                       {Признак того, что решение найдено}
begin
for i:=123 to 987 do
begin
if f=false then
  begin
  s:=IntToStr(i);
  Ast:=s[1];  Bst:=s[2];  Cst:=s[3];
  A:=StrToInt(Ast);  AB:=StrToInt(Ast+Bst);  ABC:=StrToInt(Ast+Bst+Cst);    BCB:=StrToInt(Bst+Cst+Bst);
  if A+AB+ABC=BCB then f:=true;
  if (s[1]=s[2]) or (s[1]=s[3]) or (s[2]=s[3]) then f:=false; {цифры не должны повторяться}
  end
end;
if f=true then writeln(A,'+',AB,'+',ABC,'=',BCB) else writeln('Решения нет')
end.
Нашел более простое решение:
var a,b,c: integer;
begin
for a:=1 to 9 do
for b:=1 to 9 do
if a<>b then for c:=0 to 9 do
if (a<>c) and (c<>b) then
if a+10*a+b+100*a+10*b+c=100*b+10*c+b
then writeln(a,'+',a,b,'+',a,b,c,'=',b,c,b)
end.