方法一:利用构造函数和静态数据成员

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. class Temp
  4. {
  5. public:
  6. Temp()
  7. {
  8. ++N;
  9. Sum+=N;
  10. }
  11. static void Reset()
  12. {
  13. N=0;
  14. Sum=0;
  15. }
  16. static int GetSum()
  17. {
  18. return Sum;
  19. }
  20. private:
  21. static int N;
  22. static int Sum;
  23. };
  24. int Temp::N=0;
  25. int Temp::Sum=0;
  26. int solution_Sum(int n)
  27. {
  28. Temp::Reset();
  29. Temp *a=new Temp[n];
  30. delete []a;
  31. a=0;
  32. return Temp::GetSum();
  33. }
  34. int main()
  35. {
  36. cout<<solution_Sum(100)<<endl;
  37. return 0;
  38. }

方法二:利用虚函数

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. class A;
  4. A* Array[2];
  5. class A
  6. {
  7. public:
  8. virtual int Sum(int n)
  9. {
  10. return 0;
  11. }
  12. };
  13. class B:public A
  14. {
  15. public:
  16. virtual int Sum(int n)
  17. {
  18. return Array[!!n]->Sum(n-1)+n;
  19. }
  20. };
  21. int solution2_Sum(int n)
  22. {
  23. A a;
  24. B b;
  25. Array[0]=&a;
  26. Array[1]=&b;
  27. int value=Array[1]->Sum(n);
  28. return value;
  29. }
  30. int main()
  31. {
  32. cout<<solution2_Sum(100)<<endl;
  33. return 0;
  34. }

利用函数指针

[cpp] view plaincopy
  1. #include <iostream>
  2. using namespace std;
  3. typedef int (*fun)(int);
  4. int solution_f1(int i)
  5. {
  6. return 0;
  7. }
  8. int solution_f2(int i)
  9. {
  10. fun f[2]={solution_f1, solution_f2};
  11. return i+f[!!i](i-1);
  12. }
  13. void main()
  14. {
  15. cout<<solution_f2(100)<<endl;
  16. }

三。利用&&的短路特性

[cpp] view plaincopy
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int add_fun(int n, int &sum)
  5. {
  6. n && add_fun(n-1, sum);
  7. return (sum+=n);
  8. }
  9. int main()
  10. {
  11. int sum=0;
  12. int n=100;
  13. printf("1+2+3+...+n=%d\n",add_fun(n, sum));
  14. return 0;
  15. }

求1+2+3+...+n,要求不能使用乘除法,for,while,if,else,switch,case等关键字以及条件判断语句相关推荐

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

    求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C) 文章目录 求1+2+3+...+n,要求不能使用乘除法.for ...

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

    求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). //利用构造函数求解 /*class Temp{ pub ...

  3. 【OJ - 基础数学】求1+2+3+...+n(不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句)

    文章目录 OJ - 求1+2+3+...+n 解题思路 OJ - 求1+2+3+-+n 题目难度:中等 OJ链接:求1+2+3+-+n__牛客网 (nowcoder.com) 题目描述: 求1+2+3 ...

  4. (不带头结点的)单链表增删查改,逆置单链表(两种方法),求两个单链表的第一个公共结点,合并两个单链表,单循环链表中判断第一个入环点,约瑟夫环

    补充了每个算法的基本思想,并且画了思路图,源代码都经过调试成功 1.SlistNode.c文件 (1) (不带头结点的)单链表增删查改 #include "SlistNode.h" ...

  5. 求质数算法的N种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在CSD ...

  6. 求质数算法的 N 种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在 CS ...

  7. (转)求质数算法的N种境界[1] - 试除法和初级筛法

    ★引子 前天,俺在<俺的招聘经验[4]:通过笔试答题能看出啥?>一文,以"求质数"作为例子,介绍了一些考察应聘者的经验.由于本文没有政治敏感内容,顺便就转贴到俺在CSD ...

  8. 编写函数求两个整数 a 和 b 之间的较大值。要求不能使用if, while, switch, for, ?: 以 及任何的比较语句。...

    本题要求不能使用if, while, switch, for, ?: 以 及任何的比较语句,也就是要求我们不能用常规的方法来判断两个数的大小. 那么按照以往的方法,要判断两个数的大小,应该要将两个数进 ...

  9. oracle查找clob中的值,Oracle 查找带有CLOB字段的所有表

    myBatis的一对多查询,主要利用resultMap实现一次查询多个结果集 日常开发中有这中场景,一个用户有多个角色,一个角色又有多个菜单,想查出一个用户的所有菜单.除了常见的关联查询之外,更使用的 ...

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

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

最新文章

  1. android控件之TextView(一)
  2. Kubenetes — YAML 基本语法
  3. linux网络培训题目,linux 网络学习问题命令总结
  4. 设△ABC的内角A,B,C,所对的边分别为a,b,c,且acosB-bcosA=3/5c,则tan(A-B)的最大值为
  5. 前端学习(1686):前端系列javascript基础面试总结
  6. .NET并行编程实践(一:.NET并行计算基本介绍、并行循环使用模式)
  7. 什么是CTS、CLS和CLR
  8. 2021接力题典1800【数学一】-汤家凤【题目册】
  9. java调用jrtplib,jrtplib的文档翻译
  10. Android Studio 使用夜神模拟器查看apk打印日志
  11. 多模态预训练CLIP模型的强大为例
  12. 计算机组成原理——加减运算 溢出判断
  13. 分享一下开女装服装加盟店的赚钱攻略
  14. 从新手到高手c++全方位学习 pdf + 视频教程 共18章
  15. 携职教育:四川2022年人力资源管理师考试报名通知
  16. “云钉一体”战略解读:阿里打通了数字化的“罗马引水桥”
  17. QSqlQueryModel搭配QTableView使用卡死问题
  18. stm32---RS485半双工通信
  19. 一个人的孤独,一群人的狂欢!
  20. 切换盘符:使用cmd命令行 cd e: 无法切换到E盘

热门文章

  1. jquery ui accordion的详细参数
  2. 基于LVDS的高速自同步串行传输系统的研究
  3. python文件IO中的二进制格式与文本格式
  4. 2018leetcode算法面试题汇总部分解答
  5. 最常见30种NLP任务练手项目汇总
  6. DBN-RBM TensorFlow实现
  7. CentOS7静态IP地址配置
  8. 数据-第7课-线性表的顺序存储结构
  9. NLP领域最优秀的8个预训练模型(附开源地址)
  10. 如何测试一个数组是否包含指定的值