用C ++划分两个整数
假设我们有两个整数除数和除数。我们必须将两个整数相除,而不能使用乘法,除法和mod运算符。除数除以除数后返回商。整数除法应截断为零。两个输入都是整数
因此,如果给定的输入为除数=7,除数=-3,则输出将为-2。
为了解决这个问题,我们将遵循以下步骤-
取两个参数x和y表示x除以y
如果x<-Infinity且y=1,则返回无穷大
a:=|x|,b:=|y|和ans:=0
而a–b>=0
p:=p+1
p:=0
而a–(左移b(左移1p次))>=0
a:=a–(左移b,p次)
ans:=ans+左移1p次
如果x>0为真且y>0也为真,则返回ans,否则返回(–ans)
例子(C++)
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
class Solution {
public:
int divide(int l, int y) {
if(l <= INT_MIN && y == -1)return INT_MAX;
lli a = labs(l);
lli b = labs(y);
lli ans = 0;
while(a-b >= 0){
int x = 0;
while(a-(b << 1 << x) >= 0){
x++;
}
a -= b<<x;
ans += 1<<x;
}
return (l>0)== (y>0)?ans:-ans;
}
};
main(){
Solution ob;
cout << ob.divide(40, 3);
}输入值
40 3
输出结果
13
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短