Дан массив, содержащий 2014 неотрицательных целых чисел, не превышающих 10 000. Опишите на одном из языков программирования алгоритм, позволяющий найти и вывести сумму всех содержащихся в массиве трёхзначных чисел, десятичная запись которых оканчивается на 9, но не на 99. Если подходящих чисел в массиве нет, программа должна вывести число –1. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из описанных.
| Паскаль | Бейсик |
|---|---|
const N=2014; var a : array [1..N] of integer; i, j, s: integer; begin for i:=1 to N do readln(a[i]); … end. | N=2014 DIM A(N) AS INTEGER DIM I, J, S AS INTEGER FOR I = 1 TO N INPUT A(I) NEXT I … END |
| Си++ | Алгоритмический |
#include <iostream> using namespace std; #define N 2014 int main() { int a[N]; int i, j, s; for (i=0; i < N; i++) cin >> a[i]; … } | алг нач цел N=2014 целтаб a[1:N] цел i, j, s нц для i от 1 до N ввод a[i] кц … кон |
| Python | |
# допускается также # использовать две # целочисленные переменные j, s a = [] n = 2014 for i in range(0, n): a.append(int(input())) ... | |
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии.
Программа просматривает все числа в массиве, для каждого числа проверяет его соответствие условиям и подсчитывает сумму подходящих чисел. Если после окончания просмотра сумма равна нулю, значит, подходящих чисел не было, в этом случае сумму для вывода нужно заменить на −1.
| Паскаль | Алгоритмический |
S : = 0 ; for i:=1 to N do begin if (100<=a [i]) and (a[i]<=999) and (a[i] mod 10 = 9) and (a [i] mod 100 <> 99) then s := s + a [ i] ; end ; if s=0 then s:=-1; writeln(s);
Можно использовать отдельную переменную для подсчёта количества найденных элементов. | S : = 0 j :=0 нц для i от 1 до N если 100<=а [i] <=999 и mod(a[i] ДО) =9 и mod(a[i] ,100) <>99 то s : = s + a [i] j := j+1 все кц если j =0 то вывод -1 иначе вывод s все |
Допускаются и другие способы решения, если они соответствуют указанным в условии ограничениям и приводят к правильному ответу.

