Помощь - Поиск - Пользователи - Календарь
Полная версия: помогите решить
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
asxc
Заменить буквы цифрами так чтобы соотношение оказалось верным(одинаковым буквам соотведствуют одинаковые цифры, разным - разные)

ХРУСТ*ХРОХО=рррррррррр
это примет где рррррррр-это числа
Lapp
Цитата(asxc @ 5.05.2009 18:18) *
Заменить буквы цифрами так чтобы соотношение оказалось верным(одинаковым буквам соотведствуют одинаковые цифры, разным - разные)

ХРУСТ*ХРОХО=рррррррррр
это примет где рррррррр-это числа
Не совсем понятно, что такое "рррррррррр".
р=Р или нет?
asxc
да. я просто все мозги взорвал даже начало не могу придумать как сделать
volvo
Цитата
даже начало не могу придумать как сделать
Для начала неплохо было бы воспользоваться поиском (по слову ребус), и посмотреть, как вообще такое решается.

Кстати, приведенный тобой ребус решений не имеет. Ни одного. Проверяй, не ошибся ли в условии
Ozzя
Перебором, наверное.
Например, ХРУСТ*ХРОХО=РРРРРРРРРР

Х1УСТ*Х1ОХО=111111111
И перебирать для Х от 2 до 9 (УСТО назначить другие цифры, отличаеющиеся от 1,2)
Дало умножение Х1УСТ*Х1ОХО=111111111, то Break.

Только насколько я помню эту (или подобную) задачу. Тут и система счисления не 10-ная
Могу ошибаться. Давно это было


Добавлено через 5 мин.
Так должно быть?
Здесь условие нашел, в олимпиадных задачах.
Цитата
Заменить буквы цифрами так, чтобы соотношение оказалось верным:
ХРУСТ*ГРОХОТ=РРРРРРРРРРР
asxc
Я позвонил преподавателю. он сказал что не правильно дал условие там действительно
Заменить буквы цифрами так, чтобы соотношение оказалось верным:
ХРУСТ*ГРОХОТ=РРРРРРРРРРР
Ozzя
Тогда делай то, что тебе посоветовал Volvo
asxc
парни я чё то не могу разобраться. помогите плиз
Lapp
Цитата(asxc @ 12.05.2009 21:21) *
парни я чё то не могу разобраться. помогите плиз
В детстве я ужасно не любил такие ребусы. Их публиковали в разных журналах, типа Науки и Жизни. Как-то было непонятно, зачем на это время тратить..

Вот, смотри. На блюдечке. С голубой каемочкой.
var
i,h,r,u,s,t,g,o: byte;
a: set of byte;
hrust,grohot,rrr: Int64;

begin
for r:=1 to 9 do begin
a:=[r];
rrr:=r;
for i:=1 to 10 do rrr:=rrr*10+r;
for h:=0 to 9 do if not (h in a) then begin
a:=a+[h];
for u:=0 to 9 do if not (u in a) then begin
a:=a+[u];
for s:=0 to 9 do if not (s in a) then begin
a:=a+[s];
for t:=0 to 9 do if not (t in a) then begin
a:=a+[t];
for g:=0 to 9 do if not (g in a) then begin
a:=a+[g];
for o:=0 to 9 do if not (o in a) then begin
hrust:=(((h*10+r)*10+u)*10+s)*10+t;
grohot:=((((g*10+r)*10+o)*10+h)*10+o)*10+t;
if hrust*grohot=rrr then WriteLn(hrust,'*',grohot,'=',rrr);
end;
a:=a-[g]
end;
a:=a-[t]
end;
a:=a-[s]
end;
a:=a-[u]
end;
a:=a-[h]
end
end
end.

Единственное "но": кажется, в ТР нету типа Int64.. Так что, компилируй FPC или Delphy smile.gif.

Добавлено через 18 мин.
Собственно, как выясняется, условие различности всех букв - лишнее. Без него все равно единственное решение. Так что программа существенно укорачивается:
var
i,h,r,u,s,t,g,o: byte;
hrust,grohot,rrr: Int64;

begin
for r:=1 to 9 do begin
rrr:=r;
for i:=1 to 10 do rrr:=rrr*10+r;
for h:=0 to 9 do for u:=0 to 9 do for s:=0 to 9 do for t:=0 to 9 do for g:=0 to 9 do for o:=0 to 9 do begin
hrust:=(((h*10+r)*10+u)*10+s)*10+t;
grohot:=((((g*10+r)*10+o)*10+h)*10+o)*10+t;
if hrust*grohot=rrr then WriteLn(hrust,'*',grohot,'=',rrr);
end
end
end.

Считает чуть дольше, но все равно достаточно быстро (у меня этот вариант примерно секунду работает).
asxc
спасибо огромное
proscar order best on line pharm
Pharmacie On Line
side effects of furosemide in do
Overnight Online Drug No Rx
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.