PascalABC.net, обязательно через массивы, помогите пожалуйста.
Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 6 и оканчивающихся на 6. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 6 и оканчивающихся на 6.
Answers & Comments
const n=100;
var i,sum:integer;
a:array[1..n] of integer;
begin
for i:=1 to n do begin
readln(a[i]);
if(a[i] = 0) then
break;
end;
for i:=1 to n do begin
if(a[i] <> 0) then begin
if(a[i] mod 6 = 0) and (a[i] mod 10 = 6) then
sum:=sum + a[i];
end;
end;
writeln(sum);
end.
как вариант с динамическим массивом и вычислением за один проход...
var
d : array of integer := new integer[0];
a, s : integer;
begin
repeat
read(a);
if (a <= 300) and (a > 0) then begin
setLength(d, d.Length+1);
d[d.Length-1] := a;
if (a mod 10 = 6) and (a mod 6 = 0) then s += a;
end;
until (a = 0) or (d.Length = 100);
writeln(s);
end.