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

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

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2016, 16:56   #1
ZigaBr0
 
Регистрация: 19.02.2016
Сообщений: 7
По умолчанию Расшифровать ребус, полученный в результате замены одинаковых букв одинаковыми цифрами. Найти также такие значения цифр, при котор

Расшифровать ребус, полученный в результате замены одинаковых букв
одинаковыми цифрами. Найти также такие значения цифр, при которых сумма цифр в
результате окажется наибольшей.
ДЕНЬ*8=МЕСЯЦ
ZigaBr0 вне форума Ответить с цитированием
Старый 19.02.2016, 17:23   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

такой "индо-стайл" код устроит?

Код:
function isAllLetterDiffer(N:integer):boolean;
var cnt:array[0..9] of integer;
  i, onedigit:integer;
begin
  isAllLetterDiffer := false;
  for i:=0 to 9 do cnt[i]:=0;
  while n>0 do begin
    onedigit := n mod 10;
    inc(cnt[onedigit]);
    if cnt[onedigit]>1 then Exit;
    n:=n div 10
  end;
  isAllLetterDiffer := true
end;  
  
var bukva_D,bukva_E,bukva_N,bukva_b,
  num1, num2 : integer;
begin
  WriteLn('-----------------');
  for bukva_D:=1 to 9 do
    for bukva_E:=0 to 9 do
      if (bukva_E<>bukva_D) then
         for bukva_N:=0 to 9 do
           if (bukva_D<>bukva_N) and (bukva_E<>bukva_N) then
              for bukva_b:=0 to 9 do 
                 if (bukva_D<>bukva_b) and (bukva_E<>bukva_b) and (bukva_N<>bukva_b) then begin
                   num1 := bukva_D*1000+bukva_E*100+bukva_N*10+bukva_b;
                   num2 := num1*8;
                   if (num2>9999) and (num2<100000) and (((num2 div 1000) mod 10 )=bukva_E) then
                     if isAllLetterDiffer(num2) then WriteLn(num1,' * 8  = ', num2 );
                 end;
end.
Цитата:
сумма цифр в результате окажется наибольшей.
простите, уточните, сумма каких именно цифр должна быть наибольшей?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.02.2016, 17:47   #3
ZigaBr0
 
Регистрация: 19.02.2016
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
такой "индо-стайл" код устроит?
простите, уточните, сумма каких именно цифр должна быть наибольшей?
Не совсем что надо(
Вот пример: Пример 1. Расшифровать ребус
ШЛАК + ШЛАК+ШЛАК=БЛОК


Код:
PROGRAM _1;
 CONST D=10;
 TYPE CIPFER=0..9;
 VAR A,P2,P4,PR,O,L,L1,S,FLAG: CIPFER;
 K,P1,P3,B,SLAK,BLOK: INTEGER;
BEGIN
 K:=0; FLAG:=0;
 REPEAT
 PR:=K*3 DIV D;
 FOR A:=0 TO 9 DO
 IF A<>K THEN
 BEGIN
 P1:=A*3+PR; P2:=P1 DIV D; O:=P1 MOD D;
 IF(O<>A) AND (O<>K) THEN
 FOR L:=0 TO 9 DO
 IF (L<>O) AND (L<>A) AND (L<>K) THEN
 BEGIN
 P3:=L*3+P2; P4:=P3 DIV D; L1:=P3 MOD D;
 IF L1=L THEN
 FOR S:=1 TO 3 DO
 IF (S<>L) AND (S<>A) AND (S<>O) AND (S<>K) THEN
 BEGIN
 B:=S*3+P4;
 IF(B<D)AND(B<>L)AND(B<>A)AND(B<>O)AND(B<>K) THEN
 BEGIN SLAK:=S*1000+L*100+A*D+K;
 BLOK:=B*1000+L*100+O*D+K;
 WRITE (SLAK:5,'*3=',BLOK:5,' ');
 INC(FLAG);
 IF FLAG>3 THEN
 BEGIN WRITELN; FLAG:=0
 END;
 END
 END
END
 END;
 K:=K+5
 UNTIL K>5
END.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 19.02.2016 в 18:00.
ZigaBr0 вне форума Ответить с цитированием
Старый 19.02.2016, 17:59   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Не совсем что надо(
ну, тогда извините. Как говорится "чем богаты, тем и рады"!

Вы же не думаете, что я буду делать вместо Вас ваш код по вашему примеру?!
Пример у Вас есть, тогда делайте так, как Вам надо.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами: Заполнить клетки матрицы цифрами так, чтобы в любой строке/столбце не было одинаковых цифр (Visual Basic) вася радугов Помощь студентам 2 18.10.2012 12:22
Найти первые 4 четыре натуральных числа, пятая степень которых оканчивается тремя одинаковыми цифрами, кроме нулей KolinKr Паскаль, Turbo Pascal, PascalABC.NET 3 26.01.2012 15:37
Найти все слова-числа, т.е. такие, которые состоят только из цифр. Известно, что количество цифр в каждом числе не более 9 (девяти vikichocolate Помощь студентам 1 21.12.2011 00:12
Delphi. найти последовательность всех чисел от 1 до n, кроме чисел с одинаковыми цифрами bayda06 Помощь студентам 7 01.07.2010 18:18