Предмет: Информатика,
автор: Hzjsbsjzb
Задание № 2.
Указать индексы и напечатать те элементы целочисленного массива Х, сумма цифр которых равна заданному числу М (если такие элементы есть). Размерность массива Х и число М программа должна запрашивать у пользователя.
Написать функции:
1) заполнение массива по следующему правилу: X[k+1]=(5*X[k]+7) mod 1000, где X[0]=9, mod – остаток от деления
2) определение, равна ли сумма цифр числа заданному числу М.
В одной строке вывода должны содержаться: индекс элемента массива и значение элемента массива, друг от друга должны отделятся пробелом. Следующая пара чисел должна находиться на новой строчке. Если необходимые элементы в массиве отсутствуют, то вывести сообщение NO.
Пример выходных данных при M=5:
2 23
4 113
10 41
Hzjsbsjzb:
ЛЮБОЙ
Ответы
Автор ответа:
0
На PascalABC.NET, потому что в остальных паскалях функция не может вернуть массив, а по условию она должна его заполнять.
function Init(n: integer): array of integer;
begin
Result := new integer[n];
Result[0] := 9;
for var k := 1 to Result.High do
Result[k] := (5 * Result[k-1] + 7) mod 1000;
end;
function IsSumM(n, M: integer): boolean;
begin
var s := 0;
while n > 0 do
begin
s += n mod 10;
n := n div 10
end;
Result := s = M
end;
begin
var (n, M) := ReadInteger2('Введи n и М');
Init(n).Println.Where(p -> IsSumM(p, M)).Println
end.
Похожие вопросы
Предмет: Английский язык,
автор: zorikzubenik
Предмет: Математика,
автор: zara05122
Предмет: Математика,
автор: jermakvladamaria
Предмет: Физика,
автор: абдулла20042
Предмет: Литература,
автор: ольга1317