#pragma once #include "real.hpp" #include namespace algoim { class Factorial { public: static std::vector cache; static real calculate(int n) { if (n == 0) return 1; if (cache.size() <= n) { for (int i = cache.size(); i <= n; ++i) cache.push_back(cache[i - 1] * i); } return cache[n]; } }; std::vector Factorial::cache = {1}; // 。 } // namespace algoim