sum_of_multiples: naive solution
This commit is contained in:
parent
cfb6300361
commit
cf7edc784a
2 changed files with 47 additions and 0 deletions
31
cpp/sum-of-multiples/sum_of_multiples.cpp
Normal file
31
cpp/sum-of-multiples/sum_of_multiples.cpp
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include "sum_of_multiples.h"
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
namespace sum_of_multiples {
|
||||||
|
|
||||||
|
|
||||||
|
number_t to(number_t limit)
|
||||||
|
{
|
||||||
|
return to({3, 5}, limit);
|
||||||
|
}
|
||||||
|
|
||||||
|
number_t to(const multipliers_t &multipliers, number_t limit)
|
||||||
|
{
|
||||||
|
number_t result = 0;
|
||||||
|
|
||||||
|
for (number_t i = 0; i < limit; ++i) {
|
||||||
|
|
||||||
|
auto is_multiple = [i](number_t m) -> bool {
|
||||||
|
|
||||||
|
return i % m == 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (std::any_of(multipliers.begin(), multipliers.end(), is_multiple))
|
||||||
|
result += i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
16
cpp/sum-of-multiples/sum_of_multiples.h
Normal file
16
cpp/sum-of-multiples/sum_of_multiples.h
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <initializer_list>
|
||||||
|
|
||||||
|
#define EXERCISM_RUN_ALL_TESTS
|
||||||
|
|
||||||
|
namespace sum_of_multiples {
|
||||||
|
|
||||||
|
typedef unsigned int number_t;
|
||||||
|
|
||||||
|
typedef std::initializer_list<number_t> multipliers_t;
|
||||||
|
|
||||||
|
number_t to(number_t limit);
|
||||||
|
number_t to(const multipliers_t &multipliers, number_t limit);
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue