From 0ea882b1e6bac446481f3c2efbb57cf7ebdd1a01 Mon Sep 17 00:00:00 2001 From: Bredor <40574176+freedan42x@users.noreply.github.com> Date: Mon, 18 Jul 2022 18:40:25 +0300 Subject: [PATCH] Create 6 kyu - Compile time #1 Factorial.cpp --- cpp/6 kyu - Compile time #1 Factorial.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 cpp/6 kyu - Compile time #1 Factorial.cpp diff --git a/cpp/6 kyu - Compile time #1 Factorial.cpp b/cpp/6 kyu - Compile time #1 Factorial.cpp new file mode 100644 index 0000000..ef5d69b --- /dev/null +++ b/cpp/6 kyu - Compile time #1 Factorial.cpp @@ -0,0 +1,13 @@ +typedef unsigned long long ull_t; + +constexpr ull_t factorial_impl(int n) +{ + if (n <= 1) return 1; + + return n * factorial_impl(n - 1); +} + +template +struct factorial { + static constexpr ull_t value = factorial_impl(x); +};