06/10/08 09:26:45
>>368
そういうのはfold_left系の関数の出番だな。
ruby
(1..n).inject(1){|x,y|x*y}
C++
#include<boost/iterator/counting_iterator.hpp>
#include<numeric>
#include<functional>
int fact(int n){
return std::accumulate(
boost::make_counting_iterator(1),
boost::make_counting_iterator(n+1),
1,std::multiplies<int>());
}