首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
不用加减乘除做加法
[编程题]不用加减乘除做加法
热度指数:293576
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 64M,其他语言128M
算法知识视频讲解
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
数据范围:两个数都满足
进阶:空间复杂度
,时间复杂度
示例1
输入
1,2
输出
3
示例2
输入
0,0
输出
0
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(3250)
分享
提交结果有问题?
711个回答
128篇题解
开通博客
牛客题解官
发表于 2020-06-01 16:35:45
精华题解
题目的主要信息: 题目给出两个数字 我们需要给出两个数字相加的结果 题目要求我们不可以用加减乘除符号 因此与或非运算就是我们可以用的方式 举一反三: 学习完本题的思路你可以解决如下题目: JZ15. 二进制中1的个数 JZ56. 数组中只出现一次的两个数字 JZ64. 求1+2+3+...+n
展开全文
漫漫云天自翱翔
发表于 2021-06-19 22:12:21
精华题解
题解一:自增主体思路:循环其中一个值,每次自减1,让另外一个值自增复杂度分析:时间复杂度:O(n),循环了n次;空间复杂度:O(1)。实现如下: class Solution { public: int Add(int num1, int num2) { //通过循环来保证两
展开全文
蒙牛麦片
发表于 2021-06-24 09:35:29
精华题解
JZ48 不用加减乘除做加法 题意分析 自己实现一个没有使用加减乘除的加法。 示例输入:1,2返回:1+2=3 题解一:(投机取巧): 不建议使用,没有学习到只是点。 int Add(int num1, int num2) { vector<int> v = {num1, num
展开全文
鸠摩罗什
发表于 2021-07-01 23:56:12
精华题解
描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。示例1输入:1,2返回值:3 方法一:C++自带累加函数核心思想: &nb
展开全文
JKingKong
发表于 2020-01-21 14:13:26
不用加减乘除做加法 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号 1、位运算 1.解题思路 使用位运算实现加法 1、一位加法 普通加法 异或 1 + 1 = 0 1 ^ 1 = 0(错误) 1 + 0 = 1 1 ^ 0 = 1(正确)
展开全文
法拉利201903231900848
发表于 2019-08-05 18:05:10
class Solution { public: int Add(int num1, int num2) {  
展开全文
中工升达预备毕业生
发表于 2019-12-15 11:22:27
【正如offer书上所说】在计组中,半加器、全加器中:两个二进制的相加结果是用一个异或门实现的;两个二进制的进位结果是用一个与门来实现的。 public class Solution { public int Add(int num1, int num2) { int res
展开全文
Ironxin
发表于 2020-03-11 09:53:37
不用加减乘除做加法:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。考点:进制转化 思路: & 按位与运算:相同位的两个数字都为1,则为1;若有一个不为1,则为0。两个数相与,并左移一位:相当于求得进位 如:1&1=1 将1左移一位变成了10,相当于
展开全文
谁谁谁201903271528594
发表于 2020-05-03 20:34:31
# -*- coding:utf-8 -*- class Solution: def Add(self, num1, num2): # write code here &nb
展开全文
数据结构和算法
发表于 2021-04-06 21:50:14
一:非递归解法 我们先来看一道非常简单的题,在计算机中数字是由二进制位表示的,也就是说是由0和1组成的,如果我们要实现0和1之间的加法该怎么实现呢,他会有4种组合方式 1,0+0=00 2,0+1=01 3,1+0=01 4,1+1=10 我们发现一个很重要的规律,就是只有1+1有进位,其他的都没进
展开全文
郭家兴0624
发表于 2019-08-12 09:34:21
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路(转自 牛客网箫筱沐羽):第一步:相加各位的值,不算进位,二进制每位相加就相当于各位做异或操作;第二步:计算进位值,相当于各位做与操作,再向左移一位。第三步重复上述两步, 各位相加 ,计算进位值。进位值为0,
展开全文
夜渡寒鸦呀
发表于 2022-06-08 15:18:16
C语言求 不用加减乘除做加法 解题思路 对于两个数a b,直接使用异或运算,得到不进位的数据,比如二进制 0101 与二进制 1011 ,直接异或运算,相当于按照位进行加法。 此时在计算一个发生进位的值,使用与运算,两个1会发生进位,得到进位结果需要左移一次,因为进位向前进一。 因此 a+b 等价于
展开全文
一风吹
发表于 2022-01-23 15:31:23
巧用位运算: 1、num1 & num2,与运算,得到的是2个数都是1的位置,如果进行加法,则需要进位,m =(num1 & num2)<< 1,得到进位后的数。 2、num1 ^ num2,异或,得到的是2个数1个为0另一个为1的位置,如果进行加法,则不需要进位。n =
展开全文
细雨噜噜噜
发表于 2022-06-23 20:05:20
一、基本思路 异或运算提供两数相加后二进制非进位信息。与运算提供两数相加后二进制进位信息。 举例:5+7 第一步: 5:101 7:111 异或运算得到非进位信息:010 与运算得到进位信息:101,此时需要左移位一位变成1010,再相加(用010加上1010就能得到最终结果,那么010怎么和1
展开全文
问题信息
基础数学
难度:
711条回答
3250收藏
116376浏览
热门推荐
通过挑战的用户
查看代码
盼盼152
2023-03-13 22:23:12
牛客91271...
2023-03-13 20:57:56
36度的手指编程
2023-03-09 15:27:29
松林子木
2023-03-08 10:21:29
_Kok_
2023-03-07 20:47:47
相关试题
牛牛的超市
动态规划
基础数学
评论
(5)
车站建造问题
基础数学
评论
(40)
线段树编号问题
基础数学
评论
(2)
1993-2003年某国国内生产总...
资料分析
言语理解与表达
资料分析
评论
(1)
简单描述一下TCP滑动窗口机制
计算机网络体系
评论
(1)
不用加减乘除做加法
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { public int Add(int num1,int num2) { } }
class Solution { public: int Add(int num1, int num2) { } };
# -*- coding:utf-8 -*- class Solution: def Add(self, num1, num2): # write code here
class Solution { public int Add(int num1, int num2) { // write code here } }
function Add(num1, num2) { // write code here } module.exports = { Add : Add };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num1 int整型 # @param num2 int整型 # @return int整型 # class Solution: def Add(self , num1: int, num2: int) -> int: # write code here
package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ func Add( num1 int , num2 int ) int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ int Add(int num1, int num2 ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # @param num1 int整型 # @param num2 int整型 # @return int整型 # class Solution def Add(num1, num2) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ def Add(num1: Int,num2: Int): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ fun Add(num1: Int,num2: Int): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ public int Add (int num1, int num2) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ export function Add(num1: number, num2: number): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ func Add ( _ num1: Int, _ num2: Int) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param num1 int整型 * @param num2 int整型 * @return int整型 */ pub fn Add(&self, num1: i32, num2: i32) -> i32 { // write code here } }
1,2
3
0,0
0