Матч
25, Много чисел (ManyNumbers)
Имеется массив чисел numbers и целое k. Положим значение a
равным сумме всех чисел из numbers,
делящихся на k, а b равным сумме
всех чисел из numbers, не делящихся на k. Найти модуль разности a и b.
Класс: ManyNumbers
Метод: int getSums(vector<int> numbers, int k)
Ограничения:
numbers содержит от 0 до 50 элементов, 0 £ numbers[i] £ 1000, 2 £ k £ 100.
Вход. Массив целых чисел numbers и целое число
k.
Выход. Модуль разности a
и b, которые вычисляются по
приведенному в условии задачи алгоритму.
Пример входа
numbers |
k |
{2,3,4,5,6} |
3 |
{3,4,5,6,7,8,9,10} |
5 |
{991,45,32,0,1,1,2} |
8 |
Пример выхода
2
22
1008
РЕШЕНИЕ
обработка массива
Положим сначала a = b
= 0. Проходим по массиву numbers. Если
значение numbers[i] делится на k, то добавляем его к a, если нет – то к b.
Возвращаем значение |a – b|.
ПРОГРАММА
#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
class ManyNumbers
{
public:
int getSums(vector
<int> numbers, int k)
{
int i,a,b;
for(a=b=i=0;i<numbers.size();i++)
if (numbers[i] %
k) b += numbers[i]; else a += numbers[i];
return abs(a-b);
}
};