Дан массив, содержащий 2018 положительных целых чисел, элементы массива могут принимать значения не превышающие 30 000. Необходимо найти количество элементов этого массива, меньших 100 и кратных 5. После этого изменить элементы массива меньшие 100 и кратные 5 на найденное количество и вывести изменённый массив на экран.
Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 112 87 27 95 38 программа должна вывести числа 112 87 27 1 38 по одному числу в строке (все элементы кратные 5 и меньшие 100 были приравнены количеству таких элементов в исходном массиве).
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Бейсик | Python |
|---|---|
CONST N=2018 DIM A(1 TO N) AS LONG DIM I, K, M AS LONG FOR I = 1 TO N INPUT A(I) NEXT I … END
| # кроме уже указанных # допускается использование # целочисленных переменных # k, m a = [] n = 2018 for i in range(0, n): a.append(int(input())) …
|
| Паскаль | Алгоритмический язык |
const N=2018; var a: array [1..N] of longint; i, k, m: longint; begin for i:=1 to N do readln(a[i]); … end.
| алг нач цел N=2018 целтаб a[1:N] цел i, k, m нц для i от 1 до N ввод a[i] кц … кон |
| С++ | |
#include <iostream> using namespace std; const int N=2018; int main(){ int a[N]; int i, j, k; for (i=0; i<N; ++i) cin >> a[i]; … return 0; }
| |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Задача решается в два прохода: на первом проходе определяется количество элементов массива, меньших 100 и кратных 5, на втором производится корректировка и вывод элементов.
Возможно решение в три прохода, когда на втором проходе выполняется только замена значений, а на третьем — вывод.
Пример правильной программы на языке Паскаль:
| Паскаль |
|---|
k := 0; for i:=1 to N do begin if (a[i] mod 5 = 0) and (a[i] < 100) then k := k + 1; end; for i:=1 to N do begin if (a[i] mod 5 = 0) and (a[i] < 100) then a[i] := k; writeln(a[i]); end; |

