PascalABC.net, обязательно через массивы, помогите пожалуйста. Напишите программу,...

0 голосов
28 просмотров

PascalABC.net, обязательно через массивы, помогите пожалуйста. Напишите программу, которая в последовательности натуральных чисел определяет сумму всех чисел, кратных 6 и оканчивающихся на 6. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 100. Введённые числа не превышают 300. Программа должна вывести одно число: сумму всех чисел, кратных 6 и оканчивающихся на 6.


image

Информатика (277 баллов) | 28 просмотров
Дано ответов: 2
0 голосов

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.

(288 баллов)
0 голосов

как вариант с динамическим массивом и вычислением за один проход...

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.

(1.2k баллов)