Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2014, 10:39   #1
Spanchik
Пользователь
 
Регистрация: 13.05.2014
Сообщений: 21
Вопрос помогите исправить ошибку

Условие:Расшифровать ребус, где цифры заменили одинаковыми буквами. Найти также значение цифр, при котором сумма цифр в результате будет наибольшей:
Цитата:
ЗЕРНЕ
ЗЕРНЕ
+ ЗЕРНЕ
ЗЕРНЕ
= КОЛАС
Код программы:
Код:
Program z1;
uses crt;
var
z,e,r,n,k,o,l,a,s,max,l1:longint;
begin
clrscr;
max:=0;
for z:=1 to 2 do 
for e:=1 to 9 do 
if (z<>e) then 
for r:=0 to 9 do  if (z<>r) and (r<>e) then 
for n:=0 to 9 do  if (n<>z) and (n<>e) and (n<>r) then 
for k:=4 to 9 do if (k<>z) and (k<>e) and (k<>r) and (k<>n) then  
for o:=0 to 9 do  if (o<>z) and (o<>e) and (o<>r) and (o<>n) and (o<>k) then
for l:=0 to 9 do  if (l<>z) and (l<>e) and (l<>r) and (l<>n) and (l<>k) and (l<>o) then
for a:=0 to 9 do  if (a<>z) and (a<>e) and (a<>r) and (a<>n) and (a<>k) and (a<>o) and (a<>l) then
for s:=1 to 9 do  if (s<>z) and (s<>e) and (s<>r) and (s<>n) and (s<>k) and (s<>o) and (s<>l) and (s<>a) then 
if ((z*10000+e*1000+r*100+n*10+o)*4)=(k*10000+o*1000+l*100+a*10 +s) then
begin
writeln(z,e,r,n,o,'*4=',k,o,l,a,s);
if k+o+l+a+s>max then
begin
max:=k+o+l+a+s;
end; 
end;
writeln(max:k*10000+o*1000+l*100+a*10+s);
readkey;
end.

Последний раз редактировалось Stilet; 30.06.2014 в 10:42.
Spanchik вне форума Ответить с цитированием
Старый 30.06.2014, 21:33   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
ЗЕРНЕ
или все таки ЗЕРНО ?
Код:
{
ЗЕРНО
+
ЗЕРНО
+
ЗЕРНО
+
ЗЕРНО
=========== 
КОЛАС
}
function AllDigiTsDif(Num: Integer): boolean;
var
  s: string;
  c: char;
begin
  AllDigiTsDif := false;
  str(Num, s);
  while s <> '' do 
  begin
    c := s[1];
    delete(s, 1, 1);
    if pos(c, s) <> 0 then exit; 
  end;
  AllDigiTsDif := true;
end;

function OurNum(Num1, num2: Integer): boolean;
var
  s1, s2: string;
  i:byte;
begin
  str(Num1, s1);str(Num2, s2);
  ournum:=false;
  for i:=1 to length(s1) do
  if (pos(s1[i],s2)<>0) and (i<>5) and (pos(s1[i],s2)<>2) then exit;
  ournum := s1[5] = s2[2];
end;

var
  i, res: Longint;
begin
  for i := 10234 to 24987 do
    if AllDigiTsDif(i) and OurNum(i, i * 4) and AllDigiTsDif(i * 4)  then writeln(i, '*4=', i * 4);
end.
Цитата:
10592*4=42368
10893*4=43572
10963*4=43852
13724*4=54896
14809*4=59236
15873*4=63492
18524*4=74096
19608*4=78432
20391*4=81564
21094*4=84376
21576*4=86304
23704*4=94816
23714*4=94856
23785*4=95140
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 30.06.2014 в 21:55.
Mad_Cat вне форума Ответить с цитированием
Старый 30.06.2014, 22:10   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,245
По умолчанию

Цитата:
КОЛАС
а что за "КОЛАС"? Может быть, КОЛОС ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.06.2014, 22:40   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Может быть, КОЛОС ?!
Код:
{
ЗЕРНО
+
ЗЕРНО
+
ЗЕРНО
+
ЗЕРНО
=========== 
КОЛОС
}
function AllDigiTsDif(Num: Integer): boolean;
var
  s: string;
  c: char;
begin
  AllDigiTsDif := false;
  str(Num, s);
  while s <> '' do 
  begin
    c := s[1];
    delete(s, 1, 1);
    if pos(c, s) <> 0 then exit; 
  end;
  AllDigiTsDif := true;
end;

function AllDigiTsDif2(Num: Integer): boolean;
var
  s: string;
  c: char;
begin
  AllDigiTsDif2 := false;
  str(Num, s);
  if s[2] = s[4] then delete(s, 2, 1) else exit;
  while s <> '' do 
  begin
    c := s[1];
    delete(s, 1, 1);
    if pos(c, s) <> 0 then exit; 
  end;
  AllDigiTsDif2 := true;
end;

function OurNum(Num1, num2: Integer): boolean;
var
  s1, s2: string;
  i: byte;
begin
  str(Num1, s1);str(Num2, s2);
  ournum := false;
  for i := 1 to length(s1) do
    if (pos(s1[i], s2) <> 0) and (i <> 5) and (pos(s1[i], s2) <> 2) then exit;
  ournum := (s1[5] = s2[2]) and (s1[5] = s2[4]);
end;

var
  i, res: Longint;

begin
  for i := 10234 to 24987 do
    if AllDigiTsDif(i) and OurNum(i, i * 4) and AllDigiTsDif2(i * 4)  then writeln(i, '*4=', i * 4);
end.
Цитата:
10632*4=42528
10732*4=42928
15732*4=62928
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 01.07.2014, 08:33   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,245
По умолчанию

Mad_Cat, небольшое замечание: решение должно быть только одно:
Цитата:
Найти также значение цифр, при котором сумма цифр в результате будет наибольшей
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.07.2014, 17:32   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
решение должно быть только одно
Хотя я татарин и мне 50% скидка на знание морфологических оборотов русского языка, из моих знаний оного следует:
Цитата:
Найти также значение цифр, при котором сумма цифр в результате будет наибольшей
Наличие слова в цитате, выделенного жирным, подразумевает, что решений будет минимум 2
1- решение состоящей из каких-то цифр,при котором сумма цифр в результате не будет наибольшей
2- решение состоящей из каких-то цифр,при котором сумма цифр в результате будет наибольшей

ответы номер 1.1,1.2,1.3,я предложил, нахождение же ответа номер 2, я предоставляю ТС-у(ну допишет же он 2 строки кода)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 01.07.2014 в 17:43.
Mad_Cat вне форума Ответить с цитированием
Старый 01.07.2014, 18:03   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,245
По умолчанию

Цитата:
Наличие слова в цитате, выделенного жирным, подразумевает, что решений будет минимум 2
Убедили меня, согласен.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.07.2014, 11:21   #8
Spanchik
Пользователь
 
Регистрация: 13.05.2014
Сообщений: 21
По умолчанию

Это Беларуский
Spanchik вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибку vbn1 Общие вопросы C/C++ 5 18.05.2014 23:40
Помогите исправить ошибку! Ahsim Помощь студентам 1 29.04.2014 19:18
Помогите исправить ошибку masha17 Общие вопросы C/C++ 3 22.10.2009 14:21
Помогите исправить ошибку sergoss Общие вопросы Delphi 2 14.02.2009 09:59
Помогите исправить ошибку Булат Общие вопросы Delphi 3 25.04.2008 10:01