Java不用加减乘除做加法(图文详解)

news2024/9/28 5:33:49

目录

1.题目描述

2.题解

分析

具体实现


1.题目描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号

示例

输入:1 2

输出:3

2.题解

分析

不能使用加减乘除四则运算符,那我们只能考虑使用位运算符

首先,我们分析十进制如何相加:(如159 + 167)

1.先将各个位上的数字相加(不考虑进位),

百位:1 + 1 = 2,十位:5 + 6 = 1,个位:9 + 7 = 6,即216

2.找出进位的数 5 + 6 = 11,存在进位,进位是100,9 + 7 = 16存在进位,进位是10

3.将进位数与不考虑进位的结果216相加,得100 + 10 + 216 = 326

那么,如何使用位运算实现各个位的相加?(例如15 + 9)

将数字转换为二进制形式:15-> 1111   9->1001

1.先将每一位相加,且不考虑进位。二进制满2进位,即1 + 1 = 10,此时不考虑进位,因此,可以通过异或实现不考虑进位的相加,即 1 + 1 = 0,0 + 0 = 0,1 + 0 = 1,此时1111 + 1001 = 0110

2.找出进位的数。当出现1 + 1时,产生进位,我们可以通过两个数按位与找到这些存在进位的数,再将其向左移动1位,实现进位

3.将1和2得到的数字相加,由于相加不能使用加法,即重复1、2步骤,模拟实现加法,当进位为0时,即不再产生进位,此时异或的结果即为两个数相加的结果

即:

 

具体实现

import java.util.*;
public class Solution {
    public int Add(int num1,int num2) {
        while(num2 != 0){
            //各位相加,不考虑进位
            int sum = num1 ^ num2;
            //找到存在进位的数
            int carray = (num1 & num2) << 1;
            //将前两步的值相加,相加不能使用加法,则重复前两步
            //直到不产生进位、
            //当进位的值为0时,此时异或的结果即为两数相加的值
            num1 = sum;
            num2 = carray;
        }
        return num1;
    }
}

:题目出自牛客网,链接如下

不用加减乘除做加法_牛客题霸_牛客网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文笔记:从不平衡数据流中学习的综述: 分类、挑战、实证研究和可重复的实验框架

0 摘要 论文&#xff1a;A survey on learning from imbalanced data streams: taxonomy, challenges, empirical study, and reproducible experimental framework 发表&#xff1a;2023年发表在Machine Learning上。 源代码&#xff1a;https://github.com/canoalberto/imba…

多环境开发

多环境 1、多环境开发&#xff08;YAML版&#xff09; 小结&#xff1a; 多环境开发需要设置若干种常用环境&#xff0c;例如开发、生产、测试环境yaml格式中设置多环境使用—区分环境设置边界每种环境的区别在于加载的配置属性不同启用某种环境时需要指定启动时使用该环境 …

跨境电商儿童沙画办理EN71测试标准

儿童沙画就是小孩子玩的那种用彩色沙子或者彩色墨水&#xff0c;在有图形轮廓的纸片上去绘画&#xff0c;可以按照儿童沙画底板上的人物轮廓线条&#xff0c;动物线条&#xff0c;风景线条&#xff0c;动漫线条&#xff0c;去添加自己喜欢的颜色&#xff0c;让单调的线条变成自…

请不要将数据中台做成BI!

近年来&#xff0c;随着数据驱动决策的重要性日益凸显&#xff0c;数据管理的概念也不断演进。数据中台作为一种新兴的数据管理模式&#xff0c;旨在集中组织和整合数据资源&#xff0c;为企业提供更高效、更智能的数据支持。然而&#xff0c;有时候在构建数据中台的过程中&…

C语言入门 Day_9 条件判断

目录 前言&#xff1a; 1.if判断 2.else判断 3.易错点 4.思维导图 前言&#xff1a; 我们知道比较运算和逻辑运算都会得到一个布尔型的数据&#xff0c;要么为真&#xff08;true&#xff09;&#xff0c;要么为假&#xff08;false&#xff09;。 今天我们来学习真和假在…

【性能优化】使用Perfetto定位应用启动性能的瓶颈

Android应用启动优化相关的文章已经有很多人都写过了&#xff0c;但是主要都是聚焦在&#xff0c;为了启动性能都做了哪些改动上&#xff0c;少见有文章会说应该如何分析、识别应用的启动性能。 本篇文章将会结合我个人对Perfetto的实际使用经历&#xff0c;讲解车载应用的启动…

Python“牵手”当当网商品详情API接口运用场景及功能介绍,当当网API接口申请指南

当当网是全球知名的综合性网上购物商城&#xff0c;由国内著名出版机构科文公司、美国老虎基金、美国IDG集团、卢森堡剑桥集团、亚洲创业投资基金&#xff08;原名软银中国创业基金&#xff09;共同投资成立。当当网是北京当当网信息技术有限公司营运的一家中文购物网站&#x…

【校招VIP】产品行测考点之图的推理和分析

考点介绍&#xff1a; 大厂产品校招笔试里经常会出现行测的考察&#xff0c;而图的推理是行测里面稍微有难度的一部分。因为时间有限&#xff0c;很多同学因为没有解题思路而丢分。 『产品行测考点之图的推理和分析』相关题目及解析内容可点击文章末尾链接查看&#xff01; 一…

【Unity小技巧】最简单的UI设置适配方案,萌新必看

文章目录 前言导入素材开始一、页面适配方案二、侧边栏适配方法一方法二 参考完结 前言 这期来讲一个简单的UI设计方案&#xff0c;很多同学可能搞不懂锚点、轴心这些概念&#xff0c;导致做好的UI在别人的设备上&#xff0c;乱跑或者是重叠&#xff0c;或者是参加游戏老发时间…

10-案例: 注册登录

项目思路: 1. 首页展示 将数据传递给前端模板渲染 2. 注册用户 接收前端传递的数据,保存后,重定向到首页 3. 删除用户 接收前端传递的用户名,进行删除 4. 修改用户 接收前端传递的数据,老名字进行判断,新数据修改数据 项目结构: 构建蓝图: (1). apps / user / model.py 增…

知道吗?微软将Python集成到Excel中,国产软件“抄作业”了

Excel集成Python 众所周知哦&#xff0c;VBA是一种基于微软的Visual Basic语言的宏编程语言&#xff0c;专为在Office应用程序中执行自动化任务而设计。 VBA适用于Excel、Word、PowerPoint等Office套件中的宏编程&#xff0c;可直接操作和控制Office应用程序的对象模型。 我们…

Golang Gorm 高级查询之where查询

插入测试数据 package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:"size:6"Age intEmail *string }func (*Student) TableName() string {return "student&q…

名片扫描仪有何优缺点?要不要买?

名片扫描仪是一种专用设备&#xff0c;用于将纸质名片上的信息转换为数字格式。它可以通过光学字符识别&#xff08;OCR&#xff09;技术将名片上的文本、图像和其他数据提取出来&#xff0c;并将其保存为电子文件或导入到相关应用程序中。 名片扫描仪是一种年代比较久的产品了…

申请甲骨文免费vps的流程

前提&#xff1a;拥有一张VISA信用卡或者mastercard信用卡 背景&#xff1a;甲骨文的免费VPS&#xff0c;已经使用了一年了&#xff0c;不得不说还是很香的。当时申请的节点是日本的&#xff0c;这次想申请一个美国的&#xff0c;话不多说,开冲。 最初申请的时候也是失败了好多…

【Terraform学习】使用 Terraform 从 EC2 实例访问 S3 存储桶(Terraform-AWS最佳实战学习)

使用 Terraform 从 EC2 实例访问 S3 存储桶 实验步骤 前提条件 安装 Terraform&#xff1a; 地址 下载仓库代码模版 本实验代码位于 task_ec2_s3connet 文件夹中。 变量文件 variables.tf 在上面的代码中&#xff0c;您将声明&#xff0c;aws_access_key&#xff0c;aws_…

linux 同时kill杀死多进程实践

使用场景 当程序中有使用到多进程且进程数较多的情况&#xff0c;如下图&#xff0c;且需要通过控制台杀死所有的 GSM_run.py 的进程时&#xff0c;利用 kill 命令一个一个的去结束进程是及其耗时且繁琐的&#xff0c;这时就需要我们的kill多进程的命令工作了。 批量 Kill 进程…

分享好用的翻译软件

网易有道翻译→网易有道翻译

软件产品为什么需要做测试报告?

在当今数字化的时代&#xff0c;软件产品的开发和使用已经成为各行各业的常态。随着软件市场的竞争越来越激烈&#xff0c;用户对于软件品质和功能的要求也越来越高。而为了确保软件产品质量和稳定性&#xff0c;软件测试报告变得至关重要。 一、软件产品为什么要做测试报告?…

学习ts(七)泛型

定义 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型。在ts中&#xff0c;定义函数、接口或类的时候&#xff0c;不预先定义好具体的类型&#xff0c;而在使用的时候在指定类型的一种特性。 例子&#xff…

electron软件安装时,默认选择为全部用户安装

后续可能会用electron开发一些工具&#xff0c;包括不限于快速生成个人小程序、开发辅助学习的交互式软件、帮助运维同学一键部署的简易版CICD工具等等。 开发进度&#xff0c;取决于我懒惰的程度。 不过不嫌弃的同学还是可以先关注一波小程序&#xff0c;真的发布工具了&…