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

Добрый вечер с задачей с сайта acmp.ru. Код. В наши дни в космосе находятся сотни спутников, и все они обмениваются данными. При этом система распознавания сигналов работает по схеме «Свой-Чужой». Один из спутников отправляет запрос другому спутнику в формате двух целых чисел, а второй спутник отвечает первому так же двумя целыми числами. Первые два числа первого спутника представляют собой сумму цифр и количество цифр тех двух чисел, которыми должен ответить второй спутник. При этом в качестве ответа должны получиться числа, представляющие наибольшее и наименьшее возможные значения, которые могут быть сформированы по описанному выше методу. Вам предстоит написать программу, формирующую ответ для второго спутника по известным числам, полученным от первого спутника.

Входные данные
Во входном файле INPUT.TXT записаны 2 натуральных числа S и K, представляющих сумму и количество цифр соответственно (K ≤ 100). При этом гарантируется, что возможно составить хотя бы одно K-значное число, сумма цифр которого равна S.

Выходные данные
В выходной файл OUTPUT.TXT выведите два числа – ответ второго спутника. При этом следует помнить, что все числа не имеют лидирующих нулей.
Тесты:
1 3 ответ:100 100;
2 3 ответ: 200 101;
3 4 ответ: 3000; 1002.

👇
Ответ:
Анжеkf23
Анжеkf23
06.09.2020

10000111010100010000101000011111010000010000111011100001111101000100010110000010001001111100000100001110111000011111010001000101

4,4(44 оценок)
Открыть все ответы
Ответ:
Tusovik
Tusovik
06.09.2020

Так как язык не указан, приведу пример на SWI-Prolog.

Код:

read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
Напишите программу: С клавиатуры вводится трёхзначное число (число десятков и число единиц не равна
4,6(3 оценок)
Ответ:
allonso
allonso
06.09.2020
1. В "реальном мире" это решается примерно так:

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
begin
  var a:=ArrRandom(ReadInteger('n='),0,2); a.Println;
  a.Sorted.Println
end.

Тестовое решение:
n= 15
1 2 0 2 2 0 2 0 2 0 0 1 0 0 2
0 0 0 0 0 0 0 1 1 2 2 2 2 2 2

2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
const
  nn=100;
var
  i,j,n,t:integer;
  a:array[1..nn] of integer;
begin
  Write('n='); Read(n);
  Randomize;
  for i:=1 to n do begin
    a[i]:=Random(3);
    Write(a[i],' ')
    end;
  Writeln;
  for i:=1 to n-1 do
    for j:=1 to n-1 do
      if a[j]>a[j+1] then begin
        t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t
        end;
  for i:=1 to n do Write(a[i],' ');
  Writeln;
end.

Тестовое решение:
n=15
0 1 1 0 2 1 0 2 1 2 1 0 0 2 0
0 0 0 0 0 0 1 1 1 1 1 2 2 2 2
4,5(50 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ