47 lines
889 B
C++
47 lines
889 B
C++
#include<iostream>
|
|
#include<list>
|
|
|
|
template<unsigned n>
|
|
struct factorial {
|
|
enum { val = n * factorial<n-1>::val };
|
|
};
|
|
|
|
template<>
|
|
struct factorial<0> {
|
|
enum { val = 1 };
|
|
};
|
|
|
|
|
|
int main() {
|
|
std::cout << factorial<0>::val << std::endl;
|
|
std::cout << factorial<1>::val << std::endl;
|
|
std::cout << factorial<2>::val << std::endl;
|
|
std::cout << factorial<3>::val << std::endl;
|
|
std::cout << factorial<4>::val << std::endl;
|
|
std::cout << factorial<5>::val << std::endl;
|
|
std::cout << factorial<6>::val << std::endl;
|
|
std::cout << factorial<7>::val << std::endl;
|
|
std::cout << factorial<8>::val << std::endl;
|
|
std::cout << factorial<9>::val << std::endl;
|
|
std::cout << factorial<10>::val << std::endl;
|
|
std::cout << factorial<11>::val << std::endl;
|
|
std::cout << factorial<12>::val << std::endl;
|
|
}
|
|
|
|
// Output
|
|
/*
|
|
1
|
|
1
|
|
2
|
|
6
|
|
24
|
|
120
|
|
720
|
|
5040
|
|
40320
|
|
362880
|
|
3628800
|
|
39916800
|
|
479001600
|
|
*/
|