Напишите программу на С++, которая в последовательности натуральных чисел определяет количество всех чётных чисел, кратных 3. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число: количество всех чётных чисел, кратных 3.
def process(array):
result = []
for i in range(1, len(array)-1):
if (array[i] < 0 and array[i-1] < 0) or \
(array[i] < 0 and array[i+1] < 0) or \
(array[i] > 0 and array[i-1] > 0) or \
(array[i] > 0 and array[i+1] > 0):
return 'YES'
return 'NO'
def main():
N = int(input())
assert N>=1 and N<= 10000
input_array = [int(i) for i in input().split()]
assert len(input_array) == N
print(process(input_array))
if __name__ == '__main__':
main()
Объяснение:
Протестировано на стандартном вводе/выводе + один доп тест
Доп тест:
Ввод:
5
1 2 -2 3 -4
Вывод:
YES
P.S Сайт ломает Python-код. Ниже приложен скриншот исходного кода
c++ / gcc 7.3.0
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
unsigned short int N;
unsigned int result = 0;
std::cin >> N;
std::vector<unsigned short int> arr;
while(true)
{
unsigned short int tmp;
std::cin >> tmp;
if(tmp != 0)
arr.push_back(tmp);
break;
}
std::for_each(arr.cbegin(), arr.cend(), [&result](auto& var)
{
if(var > 99 && var < 1000 && (var % 4 == 0))
result += var;
});
std::cout << result << std::endl;
return 0;
}