Дан массив a из n целых чисел. Требуется определить, является ли сумма всех его элементов четным числом.
На первой строке входного файла записано натуральное число n (n≤100) — число элементов в массиве.
На следующей строке через пробел записаны целые числа ai (∣∣ai∣∣≤105) — элементы массива.
Другие языки программирования и технологии
Помогите с задачей по PascalABC!
Не надо ничего суммировать. Сумма будет чётной, если массив содержит чётное кол-во НЕчётных чисел.
И, кстати, сам массив тоже не нужен.
Вариант с флагом чётного кол-ва нечётных:
var
i, n, k: integer;
res: boolean;
begin
res := true;
readln(n);
for i := 1 to n do begin
read(k);
if odd(k) then res := not res
end;
if res then writeln('чётное') else writeln('нечётное')
end.
Вместо if odd(k) then res := not res можно написать res := res xor odd(k) или res := res <> odd(k)
Вариант со счётчиком нечётных:
var
i, n, k, cnt: integer;
begin
cnt := 0;
readln(n);
for i := 1 to n do begin
read(k);
inc(cnt, ord(odd(k)))
end;
if odd(cnt) then writeln('нечётное') else writeln('чётное')
end.
И, кстати, сам массив тоже не нужен.
Вариант с флагом чётного кол-ва нечётных:
var
i, n, k: integer;
res: boolean;
begin
res := true;
readln(n);
for i := 1 to n do begin
read(k);
if odd(k) then res := not res
end;
if res then writeln('чётное') else writeln('нечётное')
end.
Вместо if odd(k) then res := not res можно написать res := res xor odd(k) или res := res <> odd(k)
Вариант со счётчиком нечётных:
var
i, n, k, cnt: integer;
begin
cnt := 0;
readln(n);
for i := 1 to n do begin
read(k);
inc(cnt, ord(odd(k)))
end;
if odd(cnt) then writeln('нечётное') else writeln('чётное')
end.
Тлеккабыл Гумаров
Или ввести flag = 1 и каждое нечётное число меняет этот знак. Если в конце получился минус, то сумма нечётна.
program summa; var k,n,s,ai:integer; begin s:=0; readln(n); for k:=1 to n do begin read(ai); sum:=sum+ai end; if ((sum mod 2)=0) then writeln('Сумма массива - чётное число !') end.
{Тут принципиально только то, что n вводится через readln, а элементы массива через read. Сам же массив требуется только при вводе, в программе его таковым описывать необязательно. А суммировать или нет элементы массива- это дело хозяйское, равно как и проверка n на <=100, а ai на модуль! }
{Тут принципиально только то, что n вводится через readln, а элементы массива через read. Сам же массив требуется только при вводе, в программе его таковым описывать необязательно. А суммировать или нет элементы массива- это дело хозяйское, равно как и проверка n на <=100, а ai на модуль! }
program q210818910;
var
a: array[1..100] of integer;
n, i, sum: integer;
begin
read(n);
for i := 1 to n do
read(a[i]);
sum := 0;
for i := 1 to n do
sum := sum + a[i];
if sum mod 2 = 0 then
writeln('Четное')
else
writeln('Нечетное');
end.
var
a: array[1..100] of integer;
n, i, sum: integer;
begin
read(n);
for i := 1 to n do
read(a[i]);
sum := 0;
for i := 1 to n do
sum := sum + a[i];
if sum mod 2 = 0 then
writeln('Четное')
else
writeln('Нечетное');
end.
Сергей Сырятов
Можно обойтись и без массива: https://ideone.com/DrpW8N
Создайте массив на N элементов
Заполните массив
Суммируйте значения элементов массива
Для решения задачи вам потребуется цикл for в наличии двух штук, один для заполнения, другой для подсчета. Можно обойтись и одним циклом.
Радуйтесь что у вас одномерный массив
Заполните массив
Суммируйте значения элементов массива
Для решения задачи вам потребуется цикл for в наличии двух штук, один для заполнения, другой для подсчета. Можно обойтись и одним циклом.
Радуйтесь что у вас одномерный массив
Похожие вопросы
- Помогите с задачей по PascalABC.
- Простая школьная задача в PascalABC
- Задача на PascalABC.NET. Помогите с решением, очень прошу!
- Помогите с прогой на PascalABC
- Помогите с заданием по PascalABC
- Помогите решить задачу на Турбо паскале
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Помогите решить задачу.
- Помогите решить задачи по C++
- Помогите решить задачу на программирование!