1+2+...+n
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
思路:
利用短路求值的方法
C语言的逻辑操作符 && , || 具有 短路求值 的特性.
逻辑与 &&
&& 操作符的左操作数总是首先进行求值, 如果它的值为真, 则继续计算右操作数的值, 然后执行与操作得到表达式结果; 如果它的值为假, 根据与操作 有假则假 的性质可以断定该表达式的值为假, 所以不再计算右操作数的值.
表达式:expression1&& expression2
上述代码中,当判断false之后便知与的结果肯定是false了,因此后面的expression2便不再执行。因此a仍然为1。
逻辑或 ||
|| 操作符的左操作数也是首先进行求值, 如果它的值为假, 则继续计算右操作数的值, 然后执行与操作得到表达式结果; 如果它的值为真, 根据或操作 有真则真 的性质可以断定该表达式的值为真, 所以不再计算右操作数的值.
表达式:expression1 ||expression2
当expression1为true时,后面的expression2不再运行。因此上述代码中判断了true之后,后面的a=0语句不再执行,因此a的值仍为1。
因此可利用短路&&来实现if的功能,使用递归来实现循环while的功能
class Solution {
public:
int Sum_Solution(int n) {
int sum = n;
bool flag = (sum>0)&& ((sum += Sum_Solution(n-1))>0);
return sum;
}
};
随机推荐
- Ansible - [09] 高级语法
error 处理机制 默认 ansible 在遇到 error 会立刻停止 playbook [root@control ansible]# cat ~/ansible/error.yml --- - ...
- 启动Eclipse时报错如何解决?
启动Eclipse出现弹框,弹框报错内容如下: A Java Runtime Enviroment(JRE)or Java Development Kit(JDK) must be available ...
- 面试题32 - I. 从上到下打印二叉树
地址:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/ <?php /** 从上到下打印出二 ...
- .netCore 使用 Quartz 实例
一.参考源文链接 1.https://www.likecs.com/show-897836.html 2.https://blog.csdn.net/weixin_43614067/article/d ...
- C# .net 压缩文件解压上传及文件压缩下载
using ICSharpCode.SharpZipLib.Zip; using System; using System.Collections.Generic; using System.IO; ...
- Vue3生命周期钩子函数深度解析:从源码到实战的万字指南
一.Vue3生命周期革新特性 相较于Vue2,Vue3通过Composition API带来了更灵活的生命周期管理方式.通过onBeforeMount等函数注册钩子时,实际是通过injectHook方 ...
- DeepSeek+Claude强强联手,使用AI驱动DjangoStarter 3.1框架升级
前言 上个月底培训了一周就没时间更新博客 上周有一些空闲时间,就继续体验最近很火的AI辅助编程 之前的文章中有说到我配置好了 VSCode + Cline 插件搭配本地部署的 DeepSeek 来实现 ...
- wps时间戳转换成日期
第一步 打开WPS表格,选择空表格 第二步 右击选择"设置单元格格式" 第三步 选择"日期",然后选择需要的日期类型 第四步 然后在表格里,输入公式 =(D2/ ...
- VS 2022 WEB发布编译失败
VS2022当安装在非默认路径时,每次更新后,在发布时,就会出来编译失败的提示,比如这样: C:\VS2022\Preview\MSBuild\Microsoft\VisualStudio\v17.0 ...
- Linux权限与特殊权限
目录 5.1 权限讲解 5.1.1 什么是权限 5.1.2 为什么要管理权限 5.1.3 权限的分类 5.1.4 Linux的文件属于谁? 5.1.5 文件属主.属组.其他用户 5.1.6 所属者的表 ...