Bernoulli numbers: Difference between revisions
Content deleted Content added
m →{{header|REXX}}: added/changed comments and whitespace, simplified some statements, optimized some functions. |
m →{{header|C++}}: works with |
||
Line 769:
=={{header|C++}}==
{{Works with|C++11}}
{{libheader|boost}}
<lang cpp>/**
* Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
* Apple LLVM version 9.1.0 (clang-902.0.39.1)
Line 781 ⟶ 778:
*/
#include <
#include <
#include <
#include <
#include <vector> // Container
typedef boost::rational<boost::multiprecision::int1024_t> rational; // reduce boilerplate▼
rational bernoulli(size_t n) {
▲typedef boost::rational<boost::multiprecision::int1024_t> rational; // reduce boilerplate
▲ auto out = std::vector<rational>();
▲ out.emplace_back(1,(m+1)); // automatically constructs object
▲ for (size_t j = m;j>=1;j--){
}▼
▲ out[j-1] = rational(j) * (out[j-1]-out[j]);
▲ }
▲ }
▲ return out[0];
int main() {
for (size_t n = 0; n <= 60; n += n >= 2 ? 2 : 1) {
auto b =
std::cout << "B(" << std::right << std::setw(2) << n << ") = ";
std::cout << std::right << std::setw(44) << b.numerator();
std::cout << " / " << b.denominator() << std::endl;
}
return 0;
}</lang>▼
▲}
▲</lang>
{{out}}
<pre>
|