М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Piachenka150
Piachenka150
17.10.2021 19:16 •  Информатика

Вывести на экран все четырехзначные числа в которых все числа четные паскаль

👇
Ответ:
sergooopoop
sergooopoop
17.10.2021
Может, все ЦИФРЫ чётные? Тогда смысл понятен. Будем считать это правильным условием. Тогда:
program Chisla;
var
i,a,b,c,d:integer;
BEGIN
for i:=1000 to 9999 do
begin
a:=i div 1000;
if a mod 2=1 then continue; //если первая цифра нечетная, переход на следующий виток цикла
b:=(i div 100) mod 10;
if b mod 2=1 then continue; //если вторая цифра нечетная, переход на следующий виток цикла
c:=(i mod 100) div 10;
if c mod 2=1 then continue; //если третья цифра нечетная, переход на следующий виток цикла
d:=i mod 10;
if d mod 2=1 then continue //если четвертая цифра нечетная, переход на следующий виток цикла
                   else writeln(i); //иначе все цифры четные - выводим число i на экран
end; //конец витка цикла
END. //конец программы
4,4(87 оценок)
Открыть все ответы
Ответ:
kurolesov71
kurolesov71
17.10.2021
{
Если что, часть программы не нужна для построения цепочки. Она просто иллюстрирует, что полученный результат верен.
}

var
 sq : array[0..999] of array[0..9] of boolean;
 co : array[0..999] of integer;
 ar : array[1..10003] of 0..9;
  i,j: integer;
 x: integer;
 t : boolean;
 begin
 for i := 0 to 999 do
   begin
   for j := 0 to 9 do
   sq[i][j] := false;
   co[i] := 0;
   end;
 for i := 1 to 3 do
   ar[i] := 0;
 i := 3;
 t := true;
 {write('000');}
 while t do
   begin
   i := i + 1;
   x := ar[i-3]*100 + ar[i-2]*10 + ar[i-1];
   if co[x] >= 10 then t := false
     else
     begin
     j := 1;
     while sq[x][j] do 
       j := (j + 1) mod 10;
     ar[i] := j;
     sq[x][j] := true;
     co[x] := co[x] + 1;
     {write(j)}
     end;
   end;
 {writeln;}
 writeln('Length: ',i - 1);

 {просто чтобы убедиться}
 for i := 0 to 999 do
   for j := 0 to 9 do
   sq[i][j] := false;

  t := true;
 j := 0;
 i := 1;
 while (i <= 10000) and t do
   begin
   x := ar[i] * 100 + ar[i+1] * 10 + ar[i+2];
   if sq[x][ar[i+3]] then t := false
     else
     begin
     sq[x][ar[i+3]] := true;
     j := j + 1;
     end;
   i := i + 1
   end;
 if t and (j = 10000) then
   write('Confirmed')
end.
4,6(89 оценок)
Ответ:
andreyrodrigo2
andreyrodrigo2
17.10.2021
Наибольшее возможное значение выражения (F+O+X+E)*(F*R*D*D) = 236196. Прилагаю небольшой скрипт на Python. Простенькая задачка на корректную организацию перебора с использованием вложенных циклов:

max_num = 0
for f in xrange(10):   
    for o in xrange(10):
        for x in xrange(10):
            for e in xrange(10):
                 for r in xrange(10):
                      for d in xrange(10):
                            b = f*r*d*d
                            if b == 0:
                                 continue
                            num = (f + o + x + e) * b
                            if num > max_num:
                                 max_num = num

print "Maximum value of (F+O+X+E)*(F*R*D*D) is: %i" % max_num

Решение можно получить гораздо проще, если догадаться, что наибольшее значение выражения достигается, когда сумма F+O+X+E и произведение F*R*D*D являются максимальными. Это одновременно происходит, когда все цифры равны 9: (9+9+9+9)*9*9*9*9 = 236196
4,6(76 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ