1 题目描述

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

2 思路和方法

  (1)递归,不能使用if等条件判断语句,可以使用&&逻辑运算符的短路特性实现。当n=0时,不进行后一个判断的计算,作为递归终止。

  (2)利用sizeof(a)计算bool数组的字节数,bool类型在C++中占一个字节。bool a = [n][n+1]; 因一共有n*(n+1)个1,下三角或者上三角,第一行:[1]和为1;第二行:[1][1] 和为2;第三行:[1][1][1]和为3,……。bool类型的数据a,sizeof(a)=n*(n+1),所以1+2+3+...+n=sizeof(a)=n*(n+1)/2,或者是sizeof(a)>>1。

3 C++核心代码

 #include<iostream>

 #include<vector>

 using namespace std;

 class Solution {
public:
int Sum_Solution(int n) {
int sum = n;
sum && (sum += Sum_Solution(n - ));// 利用前一个判断短路;当n=0时,不进行后一个判断的计算,作为递归终止
return sum;
}
}; int main()
{
Solution a; int res = a.Sum_Solution();
cout << "result = " << res << endl;
system("pause");
return ;
}
 class Solution {
public:
int Sum_Solution(int n) {
bool a[n][n+];
return sizeof(a)>>;
}
};

参考资料

https://blog.csdn.net/feng_zhiyu/article/details/82112248

最新文章

  1. 游戏编程系列[1]--游戏编程中RPC协议的使用[2]--Aop PostSharp篇
  2. RabbitMQ(四)
  3. redis持久化以及主从服务器的配置
  4. 迁移mysql数据到oracle上
  5. 【问题&amp;解决】解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题
  6. Cisco IOS Debug Command Reference Command E through H
  7. sql复制表
  8. C++ STL之list容器的基本操作
  9. V9自定义分页函数
  10. Fedora 命令
  11. hdu 3929 Big Coefficients 容斥原理
  12. Eclipse配置Git
  13. SQL从入门到基础 - 05 数据分组、Having语句
  14. 恶意软件Mirai换了个马甲 瞄上我国2亿多台IoT设备
  15. [国嵌攻略][157][SPI总线介绍]
  16. 编写简单的辅助脚本来在 Google 表格上记账
  17. SQL Server Cast、Convert数据类型转换
  18. 深入理解 Vue Computed 计算属性
  19. Docker Kubernetes Volume 本地数据卷
  20. Log4j 日志记录

热门文章

  1. MySQL数据分析—(4)关系数据库的三个逻辑框架
  2. 学院管理系统(mysql版)
  3. GitHub排名TOP30的机器学习开源项目/贪心学院
  4. 最全的tcpdump使用详解
  5. php中_initialize()函数与 __construct()函数的区别说明
  6. Hadoop常用操作汇总
  7. VUE数组操作方法的局限
  8. [Java读书笔记] Effective Java(Third Edition) 第 7 章 Lambda和Stream
  9. python中的tcp示例详解
  10. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_02-自定义查询页面-服务端-接口开发