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

Возможно кто-то из вас видел механическую печатную машинку. Это очень простое устройство. Вы нажимаете клавишу на ее клавиатуре и металлическая буква оставляет отпечаток на бумаге, ударяя по ней через ленту с чернилами. Искусство печати на такой машинке более сложное, чем на компьютере. По клавишам надо ударять с некоторым усилием, также нельзя перестараться с силой удара, иначе бумага будет повреждена. Представьте теперь печатную машинку с очень острыми буквами, которые вместо печати протыкают бумагу. Ясно, что цифра 0 на такой машинке вырежет дырку в бумаге, и из нее выпадет маленький овал. То же самое случиться с цифрами 4, 6, 9. А 8 вырежет уже две дырки. Остальные проткнут бумагу, но не вырежут дырку.

Лучшие умы в программировании готовят выставку, посвященную юбилею создания Паскаля. Одна из идей для этой выставки — сделать инсталляцию, состоящую из пустых листов бумаги, содержащих в точности h (0 ≤ h ≤ 510) дырок каждый. Дырки делаются описанной печатной машинкой, путем пробивания на ней неотрицательного целого числа. Число должно быть минимально возможным и не содержать ведущих нулей организаторам подобрать соответствующее число.

Входные данные
На вход подается число h (0 ≤ h ≤ 510).

Выходные данные
Выведите число, которое должно быть напечатано.

Примеры
входные данные
15
выходные данные
48888888

👇
Ответ:

Відповідь:

N=int(input())

if N%2==1:

   print("4"+"8"*((N-1)//2))

else:

   print("8"*(N//2))

4,6(19 оценок)
Открыть все ответы
Ответ:
bodleva06
bodleva06
28.12.2021
Var
  i, n, s: longint;
  d, k: integer;

begin
  i := 3; k := 0;
  repeat
    s := 1;
    for d := 2 TO Trunc(sqrt(i)) do
    begin
      n := (i div d);
      if n * d = i then s := s + d + (i div d);
    end;
    if int(sqrt(i)) = sqrt(i) then s := s - Trunc(sqrt(i));
    if s = i then k := k + 1;
    i := i + 1
  until (k = 3);
  Writeln('Третье совершенное число равно ',s)
end.

Тестовое решение:
Третье совершенное число равно 496

const
  k=35; { k-е по порядку простое число }

var
  i,j,n,m:integer;

begin
  n:=1; i:=1;
  repeat
    j:=2;
    m:=round(sqrt(i));
    while (i mod j <>0) and (j<=m) do j:=j+1;
    if j>m then n:=n+1;
    i:=i+1
  until (n=k);
  Writeln(i-1)
end.

Тестовое решение:
137

var
  n, d1, d2, d3: integer;

begin
  Write('Введите трехзначное число ->');
  Readln(n);
  d1 := (n div 100);
  d2 := ((n mod 100) div 10);
  d3 := (n mod 10);
  if (d1 * d2 * d3 in [100..999]) then
    Writeln('Произведение цифр трехзначное')
  else Writeln('Произведение цифр не трехзначное')
end.

Тестовое решение:
Введите трехзначное число ->518
Произведение цифр не трехзначное

*** В блок-схемах использованы обозначения:
sqrt(x) - квадратный корень от х;
\ - операция целочисленного деления
% - операция остатка от целочисленного деления    
4,6(52 оценок)
Ответ:
DFV7
DFV7
28.12.2021
Непростая задача...

const
  n = 16;

type
  R = record
    v: integer;
    p: integer
  end;
  mR = array[1..n] of R;

function SummOfDigits(n: integer): integer;
{ Сумма цифр в трехзначном числе }
begin
  SummOfDigits := (n div 100) + ((n mod 100) div 10) + (n mod 10)
end;

procedure Swp(var a, b: R);
{ Меняет местами элементы a и b }
var
  t: R;
begin
  t.v := a.v; t.p := a.p;
  a.v := b.v; a.p := b.p;
  b.v := t.v; b.p := t.p
end;

procedure Shell(var a: mR; n: integer);
{ сортировка методом Шелла }
var
  i, j, step: integer;

begin
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if a[i].v > a[i + step].v then Swp(a[i], a[i + step]);
        i := i + step
      end
    end;
    step := step div 2
  end
end;

var
  a: array[1..n] of integer;
  b: mR;
  i: integer;

begin
  Randomize;
  Writeln('*** Исходные элементы массива ***');
  for i := 1 to n do
  begin
    a[i] := Random(900) + 100;
    b[i].v := SummOfDigits(a[i]);
    b[i].p := i;
    Write(a[i]:4)
  end;
  Writeln;
  Shell(b, n);
  Writeln('*** Упорядоченные по возрастанию суммы цифр элементы массива ***');
  for i := 1 to n do
  begin
    Write(a[b[i].p]:4)
  end;
  Writeln
end.

Тестовое решение:

*** Исходные элементы массива ***
 862 244 599 379 595 840 551 151 614 383 185 893 131 172 139 256
*** Упорядоченные по возрастанию суммы цифр элементы массива ***
 131 151 244 172 551 614 840 139 256 185 383 862 595 379 893 599
4,8(7 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ