fork download
  1. #include <vector>
  2. #include <iostream>
  3.  
  4. unsigned factorial(unsigned index) {
  5. static std::vector<unsigned> cache(2, 1);
  6. if (index >= cache.size())
  7. cache.push_back(factorial(index-1)*index);
  8. return cache[index];
  9. }
  10.  
  11. int main() {
  12. std::cout << factorial(0) << '\n';
  13. std::cout << factorial(1) << '\n';
  14. std::cout << factorial(2) << '\n';
  15. std::cout << factorial(3) << '\n';
  16. std::cout << factorial(5) << '\n';
  17. std::cout << factorial(33) << '\n';
  18. }
Success #stdin #stdout 0.01s 2856KB
stdin
Standard input is empty
stdout
1
1
2
6
120
2147483648