也谈1+2+3+...+n的解答
据说某个公司有道笔试题是这样的:
求1+2+3+...+n,编程实现,但是不允许用if,while,for,?等语句,也不能用乘除法。当然肯定也不允许用pow这样的函数了。
我们都知道,1+2+3+...+n=n*(n+1)/2=(n*n+n)/2,一个数除以2,等于右移1位。比如4(二进制为100),右移1位则为2(二进制为10)。由于不能用乘除法,所以需要将n*n转换为加减法了。
回忆一下乘法的竖式计算方法,假设101×101,如下图所示:
1 0 1
1 0 1
———
1 0 1
0 0 0
1 0 1
------------------
1 0 2 0 1
int sum(int n)
{int result = n;((n>>1) & 1) && (result += (n<<1));((n>>2) & 1) && (result += (n<<2));
...((n>>31) & 1) && (result += (n<<31));return result >> 1;
}
需要说明的是&&符号,这里用到了编译器的优化功能,如果&&前面的表达式为false,则右边的表达式就不会执行。所以当某位为0的时候,就不需要相加了。
也谈1+2+3+...+n的解答相关推荐
- 车羊问题c语言编程,再谈“羊车门”问题
摘要:本文通过对"羊.车"趣味问题的思考,提出了自己的见解,并分别运用逻辑推理.条件概率方法.计算机模拟这三种方法进行了解答,进一步对问题出现不同答案的原因进行了分析,最后得出结论 ...
- Web前端面试题(全锦集)
1 第一部分: 聪明的猴子都在看右下角目录 点击查看更多资源 前端基础(HTML CSS JS基础) 1. 怎么让一个不定宽高的 DIV,垂直水平居中? 答:1.使用 CSS 方法: 父盒 ...
- 360和瑞星杀毒软件哪个好
如果必须在这个中选择,那么就选择瑞星吧,瑞星现在也免费了. 网友解答: 现在瑞星不收费了,当然比360要强一些,不过360用途广泛一点. 网友解答: 360 杀毒永远比瑞星快那么一个节拍 网友解答: ...
- 正则式高人谈解答正则式的心得
条件1: 长度为14个字符 条件2: 其中任意9个位置为数字,并且数字只能是(0,1,3) 条件3: 其余的位置全部为"-"符号 ------------------------- ...
- 微积分学在计算机科学中的应用,浅谈微积分学在中学数学教学中的应用解答.doc...
题 目 浅谈微积分学在中学数学教学中的应用 学生姓名 何凯茜 学号 1109014004 所在学院 数学与计算机科学学院 专业班级 数学与应用数学专业数教1101班 指导教师 权双燕 完成地点 陕西理 ...
- 万字谈监控:解答Zabbix与Prometheus选型疑难
Zabbix与Prometheus 读完本文,你将收获 两者适用于多大规模的监控场景?超过5000以上监控节点时怎么办?高可用怎么解决? 两者怎么解决存储问题?对于监控信息是否有历史存储和分析,能从历 ...
- 浅谈C语言将字符串中的空格替换成%20的几种方法(附图超级详细解答)
文章目录 题目分析 暴力位移法 巧用数组法 高效倒放法 题目分析 将字符串中的空格替换为%20.样例: "abc defgx yz" 转换成 "abc%20defgx%2 ...
- 谈一谈浏览器解析CSS选择器的过程【前端每日一题-6】
谈一谈浏览器解析CSS选择器的过程? 这是一道发散题,可以根据自己的理解自行解答. 在开始前,我们必须了解一个真相:为什么排版引擎解析 CSS 选择器时一定要从右往左解析? 简单的来说:浏览器从右到左 ...
- 浅谈三维点云中的几何语义
前言: 本文介绍了点云中不可忽视的一项重要属性--几何语义,并尝试根据自己的理解和实践经验对其进行一些归纳总结,可能有些地方有理解有误,请大家抱着批判的态度学习. 正文: 关于点云的悠久历史本文不过多 ...
最新文章
- 谷歌BERT预训练源码解析(二):模型构建
- 转 机器学习系列 08:深入理解拉格朗日乘子法、KKT 条件和拉格朗日对偶性
- L4 如何在XCode中下进行工作
- python画树叶-使用Python turtle画分形树叶图
- Virtools学习(七)—2D Picking
- list排序_「肘后备急码」- C#对象List排序
- Win8系统搜索不到无线信号该怎么办?
- LeetCode 1071. 字符串的最大公因子
- 正则表达式(三)操作符的运算优先级、全部符号的解释
- [量子计算]量子计算的发展史与中国现在的量子计算整体水平
- java中元数据是什么_java 元数据
- 魔兽世界模型浏览器WowModelExplorer演示
- 教你快速录制gif动图
- MATLAB之GIF动图的绘制
- table——caption
- 11行代码实现滚动公告栏
- 1.5 18:鸡尾酒疗法
- 解压文件-提示:“必要的压缩卷不存在”
- 科创人·知乎CTO李大海:技术服务内容、商业化依赖内容,曾被「呵呵」难到挠头
- python协同过滤可以预测吗_基于用户的协同过滤推荐算法原理-附python代码实现...
热门文章
- 苹果手机at系统_iOS14系统苹果手机如何设置充满电提示音?
- carplay是否可以用安卓系统_是否可以仅用键盘来操作Windows 10系统和Windows 10应用?...
- android操作系统优势,Android操作系统平台最大的优势
- Ubuntu环境下挂载新硬盘 --硬盘要挂载在某个文件夹下面
- 开启大数据时代谷歌三篇论文-Mapreduce
- 搭建Keras,TensorFlow运行环境
- 文巾解题 557. 反转字符串中的单词 III
- 文巾解题 21. 合并两个有序链表
- 机器学习经验总结-神经网络训练失败的一些常见原因
- 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探