题目:
求1+2+…+n,
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
解法: 采取模版元编程即可。
代码:
template <int N>
struct binary
{
static int const value = binary<N - 1>::value + N;
};
template<>
struct binary<0>
{
static int const value = 0;
};
std::cout << binary<5>::value << std::endl;