IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите решить/разобраться с задачей., Задача-ребус
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Решить арифметический ребус КИОТИО=ТОКИО. Вместо каждой буквы необходимо поставить некоторую цифру, причём одинаковые буквы означают одинаковые цифры, а различные буквы-различные цифры.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Множества: загадка-ребус
Алгоритм решения ребуса
помогите решить ребус!

Разбирайся...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Сложно новичку в этом разобраться... Подкиньте идей. В чем смысл задачи? Что должно получится в конце?

Добавлено через 4 мин.
В условии задачи написано КИО*ИО=ТОКИО. Вот думаю, может опечатка? Может правильно должно быть КИОТИО=ТОКИО?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
В условии задачи написано КИО*ИО=ТОКИО. Вот думаю, может опечатка?
Никакая не опечатка, нормальный ребус, решаемый...

Цитата
Что должно получится в конце?
Правильное математически выражение, в котором разные буквы заменены разными цифрами, а одинаковые - одинаковыми... Конкретно в твоем случае получается:
625*25=15625

Я ж привел тебе ссылки с примерами решенных ребусов. Посмотри, что и как там делается, что именно непонятно? В чем сложность?

Вот тут еще глянь: Ребусы
Там приведен еще один способ решения ребусов...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Мой ребус также решается, как в тех задачах? Так я не видел чтобы говорилось, что разные буквы-разные цифры, а одинаковые буквы-одинаковые цифры.

Добавлено через 3 мин.
В смысле тех задачах не видел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
Так я не видел чтобы говорилось, что разные буквы-разные цифры, а одинаковые буквы-одинаковые цифры.
Это подразумевается самим понятием "ребус"... Кстати:
Цитата(Amro @ 28.12.2003 20:53) *
дело состоит в том что каждой букве соответствует своя цифра, каждая буква представляется в виде одной единственной цифры...
- это по-твоему что значит?

Цитата
Мой ребус также решается, как в тех задачах?
Абсолютно, только в вышеприведенных ребусах находится СУММА двух выражений, тебе надо найти их ПРОИЗВЕДЕНИЕ. Вот и вся разница.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Вот писал программу по тем ребусам, которые вы выложили, и... запутался! Начало и конец вроде правильные, а середину не понял.

Program Rebus;
uses crt;
var
k, i, o, t: 0..9;
dig : set of 0..9;
tokio: longint;
sum,g,w : longint;
begin
clrscr;
for k:=0 to 9 do begin
include(dig,k);
for i:=0 to 9 do
if not (i in dig) then begin
include(dig,i);
for o:=0 to 9 do
if not (o in dig) then begin
include(dig,o);
for t:=0 to 9 do
if not (t in dig) then begin
include(dig,t);
g:=100; w:=100;
sum:=k*1000*g+(i+k)*100*w+(r+o)*1000+(b+b)*100+(o+i)*10+s+k;
tokio:=t*100000+o*10000+k*1000+k*100+o*10;
if (sum=sobaki) then writeln('kio*io=tokio: ',k,i,o,'*',i,o,'=,t,o,k,i,o);
exclude(dig,k);
end;
exclude(dig,i);
end;
exclude(dig,o);
end;
exclude(dig,t);
end;
readln;
end.



Вот это место не понятно:

sum:=k*1000*g+(i+k)*100*w+(r+o)*1000+(b+b)*100+(o+i)*10+s+k;
tokio:=t*100000+o*10000+k*1000+k*100+o*10;
if (sum=tokio) then writeln('kio*io=tokio: ',k,i,o,'*',i,o,'=,t,o,k,i,o);

как оно будет выглядеть правильно? и что оно вообще значит?
P.S. никогда не решал задачи с буквами.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Я ж говорил: не сумму считать надо, а произведение:

    mult := (100*k + 10*i + o) * (10*i + o);
tokio := t*10000+o*1000+k*100+i*10+o;
if mult = tokio then
writeln(':', k,i,o,'*',i,o,'=', t,o,k,i,o);
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Вот, что получилось в итоге:

Program Rebus;
uses crt;
var
k, i, o, t: 0..9;
dig : set of 0..9;
tokio: longint;
mult,g,w : longint;
begin
clrscr;
for k:=0 to 9 do begin
include(dig,k);
for i:=0 to 9 do
if not (i in dig) then begin
include(dig,i);
for o:=0 to 9 do
if not (o in dig) then begin
include(dig,o);
for t:=0 to 9 do
if not (t in dig) then begin
include(dig,t);
g:=100; w:=100;
mult:= (100*k + 10*i + o) * (10*i + o);
tokio:= t*10000+o*1000+k*100+i*10+o;
if mult = tokio then
writeln(':', k,i,o,'*',i,o,'=', t,o,k,i,o);
exclude(dig,k);
end;
exclude(dig,i);
end;
exclude(dig,o);
end;
exclude(dig,t);
end;
readln;
end.


и она не работает!
Просто пустой черный экран.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
и она не работает!
Естественно... Во-первых, переменные G и W можно вообще убрать - они не нужны... А во-вторых, посмотри внимательно, по тем ссылкам, которые я привел: извлечение из множеств происходит в ОБРАТНОМ порядке... То есть, если у тебя

include(dig,k);
...
include(dig,i);
...
include(dig,o);
...
include(dig,t);
, то извлекать-то надо вот так:
      exclude(dig,t); { это самый внутренний цикл }
...
exclude(dig,o);
...
exclude(dig,i);
...
exclude(dig,k); { это - самый внешний цикл }

А у тебя что творится?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 22
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  0  +


Спасибо большое тебе! Все работает! Что твое dig, include(dig,t) и exclude(dig,i) в программе?


Добавлено через 4 мин.
Опечатка! Что такое dig, include(dig,t) и exclude(dig,i) в программе?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 20:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name