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