コード例 #1
0
ファイル: range.hpp プロジェクト: m-j-w/hana
        static constexpr I sum_helper(I m, I n) {
            if (m == n)
                return m;

            // 0 == m < n
            else if (0 == m)
                return n * (n+1) / 2;

            // 0 < m < n
            else if (0 < m)
                return sum_helper(0, n) - sum_helper(0, m-1);

            // m < 0 <= n
            else if (0 <= n)
                return sum_helper(0, n) - sum_helper(0, -m);

            // m < n < 0
            else
                return -sum_helper(-n, -m);
        }
コード例 #2
0
ファイル: range.hpp プロジェクト: m-j-w/hana
 static constexpr auto apply(range<T, from, to> const&) {
     return integral_c<T, from == to ? 0 : sum_helper(from, to-1)>;
 }
コード例 #3
0
ファイル: p2.cpp プロジェクト: mbaroody/Recursion_cpp
static int sum_helper(list_t list, int sum) {
    if (list_isEmpty(list)) return sum;
    return sum_helper(list_rest(list), sum + list_first(list));
}
コード例 #4
0
ファイル: p2.cpp プロジェクト: mbaroody/Recursion_cpp
int sum(list_t list) {
    return sum_helper(list, 0); 
}