помогите написать программу в паскале с решением ребус A+AB+ABC=BCB
Ответы на вопрос
Ответил Аноним
0
Число АВС может принимать значение от 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
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.
Ответил Аноним
0
Нашел более простое решение:
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.
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.
Новые вопросы
Обществознание,
2 года назад
Математика,
10 лет назад
Математика,
10 лет назад
Алгебра,
10 лет назад