Позволю домыслить ваш вопрос в такой: на сколько среди первых 50 чисел Фибоначчи больше нечётных чисел, чем чётных.
Последовательность Фибоначчи F(n) задается условиями F(1) = F(2) = 1 и F(n + 2) = F(n + 1) + F(n). Заметим, что последовательность Фибоначчи периодична по модулю 2; иначе, если выписывать 0, если число чётное, и 1, если нечетное, то последовательность будет повторяющаяся. Начало такой последовательности выглядит так: 1, 1, 0, 1, 1, 0, ...
Ноль будет стоять на всех местах, номера которых делятся на 3. Таким образом, среди первых 50 чисел Фибоначчи чётных ровно [50 / 3] = 16 ([x] - целая часть x, т.е. максимальное целое число, не превосходящее x) Ну а тогда нечётных чисел 50 - 16 = 34. Вторых больше, чем первых, на 34 - 16 = 18.
Последовательность Фибоначчи F(n) задается условиями F(1) = F(2) = 1 и F(n + 2) = F(n + 1) + F(n).
Заметим, что последовательность Фибоначчи периодична по модулю 2; иначе, если выписывать 0, если число чётное, и 1, если нечетное, то последовательность будет повторяющаяся. Начало такой последовательности выглядит так:
1, 1, 0, 1, 1, 0, ...
Ноль будет стоять на всех местах, номера которых делятся на 3. Таким образом, среди первых 50 чисел Фибоначчи чётных ровно [50 / 3] = 16 ([x] - целая часть x, т.е. максимальное целое число, не превосходящее x)
Ну а тогда нечётных чисел 50 - 16 = 34. Вторых больше, чем первых, на 34 - 16 = 18.
На 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.