46 求1+2+3+...+n 静态成员函数和静态变量
2024-10-08 13:46:10
题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路: 1)使用构造函数的方法,需要使用static变量。
2)虚函数原理
3)利用函数指针原理
4)短路原理,使用&&,||
短路原理指的是a && b,如果a为0后面的b就不执行。
思路1:使用构造函数的方法。新建一个数组,比如new,那么会调用它的构造函数,只要在构造函数里面写一个+=的语句,就可以实现这个累加的功能。
思路2:使用短路原理,利用&&短路操作,这题限制使用if语句,那么递归基就没法判断,所以利用n && f(n - 1)进行判断,n为0的时候就返回0;
class Solution {
public:
int Sum_Solution(int n) {
int res = n;
res && (res += Sum_Solution(n - ));
return res;
}
};
class tmp{
public:
tmp(){
++num,sum += num;
}
static void reset(){
num = ;
sum = ;
}
static int getsum(){
return sum;
}
private:
static int num;
static int sum; };
int tmp::num = ;
int tmp::sum = ;
class Solution {
public:
int Sum_Solution(int n) {
tmp::reset();//因为是静态变量,内部使用循环测试,所以必须要清零
tmp* a = new tmp[n];
return tmp::getsum();
}
};
最新文章
- [LeetCode] Minimum Height Trees 最小高度树
- web系统登陆页面增加验证码
- EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(一)
- hibernate取出count(*)的办法
- ARP缓存记录种类动态条目和静态条目
- Sales Order Flow Statuses
- &;&; 用法解释
- 每日一“酷”之bisect
- 2013年10月13日学习:SQL通过命令语句来创建表
- hdu 4499 Cannon(暴力)
- rpm命令数据库修复日志
- 调色板类QPalette——包含了Qt窗口不见的颜色组(collor group),和Windows右键属性外观非常类似
- oralce11g 注冊表卸载20140810
- java中多态的使用
- Spring中@Value标签的使用详解
- 利用GSEA对基因表达数据做富集分析
- Maven 的这 7 个问题你思考过没有?
- Linux内核线程kernel thread详解--Linux进程的管理与调度(十)
- ML.NET 示例:聚类之鸢尾花
- Go开发之路 -- Go语言基本语法 - 作业
热门文章
- Mysql与PostgreSql数据库学习笔记
- python pylab.plot() 方法使用
- 读书小记--<;如何阅读一本书 >;
- 再次配置caffe-windows vs2015+cuda10.0+RTX2070+python3.5
- ARM相关概念(学习目标、分类、商业模式及半导体公司、嵌入式处理器)
- 分布式事务 --- BASE 理论
- dfs(学姐的红包)
- Javascript中forEach的异步问题
- Shiro入门学习之散列算法与凭证配置(六)
- 火爆微信朋友圈的Excel速成班视频课程