题目:

求1+2+3+…+n,要求不能使用乘除法、for、while、else、switch、case等关键字及条件判断语句(A?B:C)。

代码实现:

1.构造函数法

class OneClass
{public:OneClass() {++m_objectTotalCount;m_totalSum += m_objectTotalCount;}static int GetTotalSume() { return m_totalSum; }private:static int m_objectTotalCount;static int m_totalSum;
};int OneClass::m_objectTotalCount = 0;
int OneClass::m_totalSum = 0;int GetTotalSumFrom1ToN(int n)
{if (n < 2) return -1;OneClass* pClass = new OneClass[n];delete[] pClass;return OneClass::GetTotalSume();
}

2.虚函数法

注意点:
n大于0时,!!n为true,将其转换成int型为1。
n为0时,!!为false,将其装换成int型为0。

class BaseClass
{public:virtual int GetResult(int n) { return 0; }
};BaseClass* datas[2];class DeriveClass : public BaseClass
{public:virtual int GetResult(int n) { return datas[!!n]->GetResult(n - 1) + n; }
};int GetTotalSumFrom1ToN(int n)
{datas[0] = new BaseClass;datas[1] = new DeriveClass;int totalSum = datas[1]->GetResult(n);delete datas[0];delete datas[1];return totalSum;
}

3.函数指针法

typedef int(*pFunc)(int);int TerminateFunc(int n)
{return 0;
}int SumFunc(int n)
{pFunc f[2] = { TerminateFunc, SumFunc };return n + f[!!n](n - 1);
}int GetTotalSumFrom1ToN(int n)
{return SumFunc(n);
}

46. 求1+2+3+...+n(C++实现)相关推荐

  1. python计算2的平方代码_Python练习实例46 | 求输入数字的平方,如果平方运算后小于 50 则退出。...

    这个问题,其实有两种计算的思路,第一种就是需要对结果进行判断,无非就是两种结果,一种结果为真,一种结果为假,将这两种结果分别赋值给1和0,然后创建一个while循环即可. 小黄人.jpg 实现的方式大 ...

  2. 【剑指offer-Java版】46求 1 + 2 + 3 + ... + n

    求 1 + 2 + - + n 但是不能使用判断,循环,分支,条件判断语句以及乘除运算 利用反射实现递归:目标就是构建一个递归出口 public class _Q46<T> {public ...

  3. 趣学python3(46)--求素数

    import time import math start=time.perf_counter() print("2") for n in range(3,101): for i ...

  4. (剑指Offer)面试题46:求1+2+3+....+n

    题目: 求1+2+3+...+n,要求不能使用乘除法,for,while,if,else,switch,case等关键字及条件判断语句(a?b:c). 思路: 1.构造函数 在类中定义静态成员变量N和 ...

  5. 2019 Python100道 面试 题,你会几道?

    0 遇到过得反爬虫策略以及解决方法? 1.通过headers反爬虫 2.基于用户行为的发爬虫:(同一IP短时间内访问的频率) 3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成 ...

  6. 数据的结构和运算(求和,最大和最小)

    # 数据的基本定义 lst=np.array([[[1,2,3,4],[4,5,6,7]],[[7,8,9,10],[10,11,12,13]]]) print(lst) ''' [[[ 1 2 3 ...

  7. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...

  8. 前端常用60余种工具方法(下)

    前端常用60余种工具方法(上) 41.将数字转换为大写金额 export const changeToChinese = (Num) => {//判断如果传递进来的不是字符的话转换为字符if ( ...

  9. 阿里巴巴整理的python_阿里P8大佬整理的2020年最全99道python面试题,文末附答案...

    前言: 学习python的优点是什么?python语法非常优雅,简单易学 免费开源 跨平台,可以自由移植 可扩展,可嵌入性强 第三方库丰富 python的应用领域在系统编程中应用广泛,比如说shell ...

  10. 《剑指offer》面试题的Python实现

    所属网站分类: 面试经典 > python 作者:gg 链接: http://www.pythonheidong.com/blog/article/464/ 来源:python黑洞网 www.p ...

最新文章

  1. 炸裂!这些大厂跪求的人才太牛了!
  2. FJWC 2019 游记
  3. 利用Android属性动画实现Banner的原理与实践
  4. 将list的内容转换成固定个数的分组字符串
  5. sqlmap 用户手册(续)
  6. Java中MVC详解以及优缺点总结
  7. 为什么java IO类不用基于继承的设计方案?
  8. WPF XMAL获取元素的父元素,子元素
  9. (四)DIH导入结构化数据
  10. mysql 勒索病毒怎么恢复_敲诈者病毒解密恢复 勒索病毒数据库恢复 数据库中病毒解密恢复...
  11. JWT实现接口双重认证,提供安全又不复杂的接口安全能力
  12. 杭州电子科技大学acm---2008
  13. STM32串口通信以寄存器地址和HAL两种方式实验Hello Windows!
  14. 自动(智能)驾驶系列|(一)简介与传感器
  15. EPSON晶振在电路设计中的接地问题分析解决
  16. OSG笔记一:在Win7、VS2010下配置OSG3.4
  17. UVM TLM1.0简单介绍
  18. WindowsServer教程一:SSMS连接数据库相关配置
  19. 分享两个CAD模型网站
  20. Python之三天打鱼两天晒网

热门文章

  1. 10 个迅速提升你 Git 水平的提示
  2. 美团打车已攻到北京,滴滴还在忙着收小蓝单车?
  3. 同步、异步、堵塞、非堵塞概念总结
  4. linux shell编程if语句内判断参数
  5. iOS-代码实现TableViewCell创建多个样式的Cell
  6. 在线文件管理系统 下载地址
  7. javascript弹出窗口总结
  8. taglib 标签文件
  9. 29.yii2 RBAC
  10. Oracle中for update和for update nowait的区别