当前位置:网站首页>[Niuke classic question 01] bit operation
[Niuke classic question 01] bit operation
2022-07-07 00:49:00 【RookieStriver】
Here's the catalog title
JZ65 Do not add, subtract, multiply or divide
describe :
Write a function , Find the sum of two integers , It is required that... Should not be used in the function body +、-、*、/ Four operation symbols .
Data range : Both numbers satisfy -10 \le n \le 1000−10≤n≤1000
Advanced : Spatial complexity O(1)O(1), Time complexity O(1)O(1)
Example 1:
Input :1,2
Return value :3
Example 2:
Input :0,0
Return value :0
Algorithm ideas :
Decimal addition thought : 5+7=12, Three steps
First step : Add the values of each , It's not a carry , obtain 2.
The second step : Calculate the carry value , obtain 10. If the carry value of this step is 0, So the value of the first step is the final result .
The third step : Repeat the above two steps , Only the added value becomes the result of the above two steps 2 and 10, obtain 12.
Binary addition thought : Same as decimal , First calculate the addition result without considering carry (0+0 have to 0,1+1 Carried 0,1+0 have to 1), Use XOR to get ; Then calculate the carry result of the addition ( Same as 1 Move the position of the left one bit ), Use phase and shift back left to get .
Sample code :
int Add(int num1, int num2)
{
while (num2 != 0)// Carry is not 0 Continue to add with the addition result
{
int sum = num1 ^ num2;// Get the data of each addition regardless of carry
int temp = (num1 & num2) << 1; // Adding the same bits will carry
num1 = sum;
num2 = temp;
}
return num1;
}
int main()
{
int num1 = 0, num2 = 0;
scanf("%d%d", &num1, &num2);
int ret = Add(num1, num2);
printf("%d\n", ret);
system("pause");
return 0;
}
边栏推荐
- Three methods to realize JS asynchronous loading
- Interesting wine culture
- Leecode brush questions record sword finger offer 43 The number of occurrences of 1 in integers 1 to n
- Mujoco finite state machine and trajectory tracking
- Use mujoco to simulate Cassie robot
- 准备好在CI/CD中自动化持续部署了吗?
- Win10 startup error, press F9 to enter how to repair?
- Distributed cache
- Leecode brush questions record interview questions 32 - I. print binary tree from top to bottom
- File and image comparison tool kaleidoscope latest download
猜你喜欢
The difference between redirectto and navigateto in uniapp
37頁數字鄉村振興智慧農業整體規劃建設方案
学习使用代码生成美观的接口文档!!!
Threejs image deformation enlarge full screen animation JS special effect
【批处理DOS-CMD命令-汇总和小结】-字符串搜索、查找、筛选命令(find、findstr),Find和findstr的区别和辨析
【vulnhub】presidential1
Deep learning environment configuration jupyter notebook
[software reverse - solve flag] memory acquisition, inverse transformation operation, linear transformation, constraint solving
Testers, how to prepare test data
Deep understanding of distributed cache design
随机推荐
【vulnhub】presidential1
.class文件的字节码结构
Leecode brush questions record sword finger offer 43 The number of occurrences of 1 in integers 1 to n
equals()与hashCode()
Mujoco produces analog video
Leecode brush questions record interview questions 32 - I. print binary tree from top to bottom
X.509 certificate based on go language
Interface master v3.9, API low code development tool, build your interface service platform immediately
37 page overall planning and construction plan for digital Village revitalization of smart agriculture
St table
Leetcode(547)——省份数量
Sword finger offer 26 Substructure of tree
基于SSM框架的文章管理系统
Interface (interface related meaning, different abstract classes, interface callback)
Mujoco second order simple pendulum modeling and control
AI super clear repair resurfaces the light in Huang Jiaju's eyes, Lecun boss's "deep learning" course survival report, beautiful paintings only need one line of code, AI's latest paper | showmeai info
Data processing of deep learning
VTK volume rendering program design of 3D scanned volume data
Lombok makes ⽤ @data and @builder's pit at the same time. Are you hit?
【JokerのZYNQ7020】AXI_EMC。