#include <cstdio>
template<int N> class Factorial
{
public:
static int const vl = N * Factorial<N - 1>::vl;
};
template<> class Factorial<1>
{
public:
static int const vl = 1;
};
template<int N> class FactorialSum
{
public:
static int const vl = Factorial<N>::vl + FactorialSum<N - 1>::vl;
};
template<> class FactorialSum<1>
{
public:
static int const vl = Factorial<1>::vl;
};
void main()
{
int const N = 7;
printf("%d的阶乘:%d\n", N, Factorial<N>::vl);
printf("%d的阶乘之和:%d\n", N, FactorialSum<N>::vl);
}
阶乘、阶乘之和的函数式风格实现
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
手写一个拖拽文件功能
手写一个拖拽文件功能
Nodejs JavaScript -
创建一个函数,实现库函数strstr的功能
创建一个函数,实现库函数strstr的功能
创建一个函数 实现库函数strstr的功能 -
python 定义一个函数求双阶乘 python定义求阶乘的函数
定义计算N的阶乘的函数1)使用循环计算阶乘def frac(n): r = 1 if n<=1: if n==0 or n==1: return 1 else: print('n 不能小于0') else: for i in range(1, n+1):
python 定义一个函数求双阶乘 python 定义计算N的阶乘的函数 使用循环计算阶乘 使用递归计算阶乘