求1+2+...+n(模板类) 代码(C++)

本文地址: http://blog.csdn.net/caroline_wendy

题目: 求1+2+...+n, 要求不能使用乘除法\for\while\if\else\switch\case等keyword及条件推断语句(A?B:C).

能够使用模板类求解, 输入模板參数, 进行递归调用, 每次递归值减1, 至模板參数为1时, 显示调用结束模板类.

代码:

/*
* main.cpp
*
* Created on: 2014.7.12
* Author: spike
*/ #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h> template <size_t n> struct Sum {
enum Value { N = Sum<n-1>::N + n};
}; template <> struct Sum<1> {
enum Value {N=1};
}; int main(void)
{
size_t result = Sum<10>::N;
printf("result = %d\n", result);
return 0;
}

输出:

result = 55

编程算法 - 求1+2+...+n(模板类) 代码(C++)的更多相关文章

  1. 编程算法 - 求1+2+...+n(函数指针) 代码(C++)

    求1+2+...+n(函数指针) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 求1+2+...+n, 要求不能使用乘除法\for\whi ...

  2. 编程算法 - 求1+2+...+n(函数继承) 代码(C++)

    求1+2+...+n(函数继承) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 求1+2+...+n, 要求不能使用乘除法\for\whi ...

  3. C++模板类代码只能写在头文件?

      这个问题,实际上我几年前就遇到了.最近写个模板类玩的时候,再次遇到.   当我非常仔细的将定义和实现分开,在头文件中保留了最少的依赖后,一切就绪.cpp单独编过.但是当使用的时候,就会报告所有的函 ...

  4. 编程算法 - 求1+2+...+n(构造函数) 代码(C++)

    求1+2+...+n(构造函数) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 求1+2+...+n, 要求不能使用乘除法\for\whi ...

  5. 编程算法 - 最好牛线(Best Cow Line) 代码(C)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/37909933 最好牛线(Best Cow L ...

  6. 编程算法 - 连续子数组的最大和 代码(C)

    连续子数组的最大和 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个整型数组, 数组里有正数也有负数. 数组中一个或连续的多个整数组成一 ...

  7. 编程算法 - 最小的k个数 红黑树 代码(C++)

    最小的k个数 红黑树 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入n个整数, 找出当中的最小k个数. 使用红黑树(multiset) ...

  8. 编程算法 - n个骰子的点数(递归) 代码(C)

    n个骰子的点数(递归) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 把n个骰子仍在地上, 全部骰子朝上一面的点数之和为s. 输入n, 打印出 ...

  9. 编程算法 - 二叉搜索树(binary search tree) 代码(C)

    二叉搜索树(binary search tree) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 二叉搜索树(binary search tree)能 ...

随机推荐

  1. android 经典博客

    http://blog.csdn.net/harvic880925/article/category/1707319

  2. android:关于主工程和library project

    .如何将一个android工程作为库工程(library project) library project是作为jar包被其它android工程使用的,首先它也是普通的android工程.然后: )在 ...

  3. <vim实用技巧>学习笔记

    第三章插入模式 1.插入模式下的删除  2.返回普通模式                                 3.复制 yt, //复制当前光标到逗号(,)之前的内容 第四章 可视模式 1 ...

  4. git分支演示

    https://learngitbranching.js.org https://github.com/pcottle/learnGitBranching no demo模式可以随便玩 https:/ ...

  5. Dark roads--hdoj

    Dark roads Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Su ...

  6. BZOJ 2929 网络流

    题意是啥--. 思路: 不是与1或n连起来的边 边权是1 否则是inf 跑网络流 //By SiriusRen #include <queue> #include <cstdio&g ...

  7. Solr.NET快速入门(七)【覆盖默认映射器,NHibernate集成】

    覆盖默认映射器 默认情况下,SolrNet使用属性映射Solr字段. 但是,您可能需要使用另一个映射程序. 替换默认映射器取决于您如何设置库: 内置容器 如果使用默认的内置容器,可以在调用Startu ...

  8. pc端和移动端的轮播图实现(只是结构,内容以后慢慢补充)

    轮播图 PC端 移动端 原生js的写法 图片顺序 8123456781 设置计时器 当过度完成之后判断index是否到达两边界限,是的话设置位移 手指touchstart时,获取位置,暂停计时器 手指 ...

  9. 23个Python爬虫开源项目代码:爬取微信、淘宝、豆瓣、知乎、微博等

    来源:全球人工智能 作者:SFLYQ 今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.Wec ...

  10. 5 Python+Selenium的元素定位方法(xpath)

    [环境] Python3.6+selenium3.0.2+FireFox50+win7 [定位方法] 1.方法:find_element_by_xpath('') 说明:xpath定位方法有相对路径和 ...