РЕБУС FORTY+TEN+TEN=SIXTYНапишите, пожалуйста, программку для расшифровки на паскале.
РЕБУС FORTY+TEN+TEN=SIXTY
Напишите, пожалуйста, программку для расшифровки на паскале.
Семик
Написать необходимо Программку
2 ответа
Вячеслав
Вот так считает в пять раз прытче, чем в предыдущем решении. Тоже никакой оптимизации, просто более современный метод проверки.
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
for var f:=1 to 9 do
for var o:=0 to 9 do
if o=f then continue
else for var r:=0 to 9 do
if Seq(1,o,r).Distinct.Countlt;gt;3 then continue
else for var t:=1 to 9 do
if Seq(f,o,r,t).Distinct.Countlt;gt;4 then continue
else for var y:=0 to 9 do
if Seq(f,o,r,t,y).Distinct.Countlt;gt;5 then continue
else for var e:=0 to 9 do
if Seq(f,o,r,t,y,e).Distinct.Countlt;gt;6 then continue
else for var n:=0 to 9 do
if Seq(f,o,r,t,y,e,n).Distinct.Countlt;gt;7 then continue
else for var s:=1 to 9 do
if Seq(f,o,r,t,y,e,n,s).Distinct.Countlt;gt;8 then continue
else for var i:=0 to 9 do
if Seq(f,o,r,t,y,e,n,s,i).Distinct.Countlt;gt;9 then continue
else for var x:=0 to 9 do
if Seq(f,o,r,t,y,e,n,s,i,x).Distinct.Count=10 then begin
var a1:=f*10000+o*1000+r*100+t*10+y;
var a2:=t*100+e*10+n;
var a3:=s*10000+i*1000+x*100+t*10+y;
if a1+a2+a2=a3 then begin
writeln(a1,'+',a2,'+',a2,' = ',a3);
Exit
end
end
end.
Итог
29786+850+850 = 31486
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
for var f:=1 to 9 do
for var o:=0 to 9 do
if o=f then continue
else for var r:=0 to 9 do
if Seq(1,o,r).Distinct.Countlt;gt;3 then continue
else for var t:=1 to 9 do
if Seq(f,o,r,t).Distinct.Countlt;gt;4 then continue
else for var y:=0 to 9 do
if Seq(f,o,r,t,y).Distinct.Countlt;gt;5 then continue
else for var e:=0 to 9 do
if Seq(f,o,r,t,y,e).Distinct.Countlt;gt;6 then continue
else for var n:=0 to 9 do
if Seq(f,o,r,t,y,e,n).Distinct.Countlt;gt;7 then continue
else for var s:=1 to 9 do
if Seq(f,o,r,t,y,e,n,s).Distinct.Countlt;gt;8 then continue
else for var i:=0 to 9 do
if Seq(f,o,r,t,y,e,n,s,i).Distinct.Countlt;gt;9 then continue
else for var x:=0 to 9 do
if Seq(f,o,r,t,y,e,n,s,i,x).Distinct.Count=10 then begin
var a1:=f*10000+o*1000+r*100+t*10+y;
var a2:=t*100+e*10+n;
var a3:=s*10000+i*1000+x*100+t*10+y;
if a1+a2+a2=a3 then begin
writeln(a1,'+',a2,'+',a2,' = ',a3);
Exit
end
end
end.
Итог
29786+850+850 = 31486
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов