题目描述:

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

思路分析:

由于题目的限制条件很多。同样想到是用位运算来解决,递归调用函数做加法。但是由于不能用条件判断,无法给定停止的条件,查了相关题解,才发现&&运算是先判断第一个条件,当为假时就不进行后续的条件判断,因此可以利用这个性质来完成终止条件的判断。代码简单,只有一行。

代码:

 class Solution {
public:
int Sum_Solution(int n) {
int sum;
(sum = n) && (sum += Sum_Solution(n-));
return sum;
}
};

剑指offer: 求1+2+...+n的更多相关文章

  1. 剑指Offer——求1+2+3+...+n

    题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 分析: 递归实现. 代码: class So ...

  2. 剑指offer——求1+2+...+n

    方法一.通过在类的构造函数中执行加的过程. #include <iostream> using namespace std; class Base { public: Base(){n++ ...

  3. 《剑指offer(第二版)》面试题64——求1+2+...+n

    一.题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句 (即三元运算符,A? B : C) 二.题解 虽然求和问 ...

  4. 【Java】 剑指offer(64) 求1+2+…+n

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 求1+2+…+n,要求不能使用乘除法.for.while.if ...

  5. 求1~n整数中1出现的次数(《剑指offer》面试题43)

    题意: 给定一个整数n,求1~n这n个整数中十进制表示中1出现的次数. 思路: 方法1:最直观的是,对于1~n中的每个整数,分别判断n中的1的个数,具体见<剑指offer>.这种方法的时间 ...

  6. 《剑指offer》写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

    弱菜刷题还是刷中文题好了,没必要和英文过不去,现在的重点是基本代码能力的恢复. [题目] 剑指offer 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. [思路] 直觉 ...

  7. 浅谈《剑指offer》原题:不使用条件、循环语句求1+2+……+n

    转载自:浅谈<剑指offer>原题:求1+2+--+n 如侵犯您的版权,请联系:windeal12@qq.com <剑指offer>上的一道原题,求1+2+--+n,要求不能使 ...

  8. 剑指Offer - 九度1506 - 求1+2+3+...+n

    剑指Offer - 九度1506 - 求1+2+3+...+n2013-11-29 19:22 题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switc ...

  9. Go语言实现:【剑指offer】求1+2+3+...+n

    该题目来源于牛客网<剑指offer>专题. 求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). Go ...

随机推荐

  1. 深入理解JVM-java内存区域与内存溢出异常

    1.内存模型概述 2.运行时数据区 2.1.程序计数器 理解: 1.什么是程序计数器 2.线程私有还是共享 引入难点: 理解什么是 native方法 简单地讲,一个Native Method就是一个j ...

  2. ajax 传递数组参数

    一.ajax 传递数组参数 需要添加: traditional: true, let typeIDArr = [,,,,,]; var that = this; var url = '@Url.Act ...

  3. 华为云主机配置yum源

    问题: 拥有华为主机,配置华为云mirrors,不走公网流量加速体验 系统: centos7.6 解决: 01.华为云mirrors https://mirrors.huaweicloud.com/ ...

  4. Linux忘记root密码,进入单用户模式,切换运行级别,切换用户

    切换用户指令 su - 用户名 当高权限用户切换到低权限用户的时候不需要密码 反之低权限切换到高权限用户需要高权限用户的密码 用exit可以退出当前用户,回到上一个用户 而且它的退出是一层一层退出的: ...

  5. LXC容器

    1.    LXC简述 Linux container是一种资源隔离机制而非虚拟化技术.VMM(VMM Virtual Machine Monitor)或者叫Hypervisor是标准的虚拟化技术,这 ...

  6. js正则表达式验证、匹配数字、匹配字符串、匹配中文、匹配任意字符备忘录

    本文转自:91博客 :原文地址:http://www.9191boke.com/235792704.html 正则表达式或“regex”用于匹配字符串的各个部分,下面是我创建正则表达式的备忘录.包括一 ...

  7. CSS制作华为mate8手机模型示例

    CSS制作华为mate8手机模型效果图 1.HTML代码 <!DOCTYPE html> <html> <head> <meta charset=" ...

  8. libpng 漏洞分析

    相关资源 PNG文件格式文档 http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html https://www.myway5.com/index.p ...

  9. keras神经网络开发知识笔记

    mnist数据集获取60000个训练样本和10000个测试样本,样本为0-9十个数字,用全连接神经网络进行训练,并测试结果. 例程采用60000个数据样本进行训练,对于一般的电脑来说,这样训练会比较费 ...

  10. 字节序 —— Big Endian 和 Little Endian

    一.字节序 字节序指的是多字节的数据在内存中的存放顺序 内存有高地址端与低地址端.其中,低地址端既可以存放高位字节,也可以存放低位字节. Big Endian 是指低地址端 存放 高位字节. Litt ...