当前位置: 首页 > news >正文

C语言初阶牛客网刷题——JZ65 不用加减乘除做加法】【难度:简单】

1. 题目描述

牛客网OJ题链接
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

2. 分析

十进制相加思想: 15+7 , 先计算不考虑进位的相加结果 12 (因为 5+7 的不考虑进位的结果是 2 ,遇 10 进位),然后计算进位 5+7 进位是 10 ,则 10 与 12 再次相加,得到 22 ,进位为 0 ,则计算到此结束。
这里使用二进制求和,思想和十进制类似,但是二进制计算相加和进位不需要使用 + 符号
二进制相加思想:与十进制相同,先计算不考虑进位的相加结果( 0+0 得 0 , 1+1 进位得 0 , 1+0 得 1 ),使用异或即可; 然后计算相加的进位结果(同 1 的位置左移一位即可),使用相与后左移取得。

3. 代码实现

int Add(int num1, int num2 ) {while (num2 != 0) { //进位不为0则持续与相加结果进行相加int tmp = num1 ^ num2;//得到每位相加不考虑进位的数据num2 = (num1 & num2) << 1;//同1的位相加则会进位num1 = tmp;}return num1;
}

在这里插入图片描述

http://www.lryc.cn/news/536971.html

相关文章:

  • git 记录
  • PyTorch Lightning Trainer介绍
  • mysql监控--慢查询
  • Conda 包管理:高效安装、更新和删除软件包
  • AcWing 798. 差分矩阵
  • 通用定时器学习记录
  • 科技之光闪耀江城:2025武汉国际半导体产业与电子技术博览会5月15日盛大开幕
  • vue开发06:前端通过webpack配置代理处理跨域问题
  • ⚡️《静电刺客的猎杀手册:芯片世界里的“千伏惊魂“》⚡️
  • 【云安全】云原生-K8S(三) 安装 Dashboard 面板
  • Spring Boot 常用依赖详解:如何选择和使用常用依赖
  • C++ 设计模式-组合模式
  • 【Spring Boot】Spring 魔法世界:Bean 作用域与生命周期的奇妙之旅
  • 移远通信边缘计算模组成功运行DeepSeek模型,以领先的工程能力加速端侧AI落地
  • Cables Finance 构建集成LST与外汇RWA永续合约的综合性DEX
  • AI大模型(DeepSeek)科研应用、论文写作、数据分析与AI绘图学习
  • 【算法工程】解决linux下Aspose.slides提示No usable version of libssl found以及强化推理模型的短板
  • 什么是HTTP和HTTPS?它们之间有什么区别?
  • 【一文读懂】TCP与UDP协议
  • 数据结构 树的存储和遍历
  • Jenkins项目CICD流程
  • EasyRTC轻量级SDK:智能硬件音视频通信资源的高效利用方案
  • AI Agent未来走向何方?
  • Visual Studio Code的键盘快捷键
  • 【Jenkins流水线搭建】
  • PHP 基础介绍
  • DeepSeek如何重塑我的编程学习:计算机新生的AI实践
  • spring boot和spring cloud的关系
  • ThreadLocal原理和存在问题
  • 用Echarts的柱状图实现圆柱体效果