■
Problem1:1<=x<1000で3か5で割り切れる数の総和
簡単なことを難しく書いた結果がこれだよ!
#include
#include
#include
#include
#include
#include
#include
#include
#include
#includeconst int MAX_NUM = 1000;
int main()
{
using namespace boost::assign;
using namespace pstade::oven;
std::vectorfactor;
factor += 3, 5;
boost::function&)> pred =
[](int i, const std::vector& factor)
-> bool
{
using namespace pstade::oven;
using boost::lambda::_1;
return exists( factor, i % _1 == 0);
};
int sum = 0;
PSTADE_OVEN_FOREACH(
n,
counting(1, MAX_NUM)
|filtered(
boost::bind(
pred,
_1,
factor
)
)
){
sum += n;
}
std::cout << sum << std::endl;
}
相変わらず僕の書くソースは見づらいです。。。