嗨,我正在做一个java活动,它将分割两个给定的数字,而不使用"/"运算符.我想使用循环语句.
System.out.print("Enter Divident: ");
int ans1 = Integer.parseInt(in.readLine());
System.out.print("Enter Divisor: ");
int ans2 = Integer.parseInt(in.readLine());
Run Code Online (Sandbox Code Playgroud)
输出是:
Enter Dividend: 25
Enter Divisor 5
5
Run Code Online (Sandbox Code Playgroud)
如何在不使用"ans1/ans2"的情况下解决这个问题
如果你真的想用循环划分两个数字,你可以像下面的代码一样编写它
int c=0;
while(ans1 >= ans2){
ans1 -= ans2;
c++;
}
Run Code Online (Sandbox Code Playgroud)
后循环c等于商,ans1等于除法提醒
如果abs1和abs2是签名的数字,下面的代码应该是分工
boolean n1 = (ans1 & (1<<31))!=0;
boolean n2 = (ans2 & (1<<31))!=0;
ans1 = Math.abs(ans1);
ans2 = Math.abs(ans2);
int c=0;
while(ans1 >= ans2){
ans1 -= ans2;
c++;
}
if(!n1 && n2) c = -c;
else if(n1 && !n2){
c = -c;
if(ans1 > 0){
ans1 = ans2 - ans1;
c--;
}
}else if(n1 && n2){
if(ans1 > 0){
ans1 = ans2 - ans1;
c++;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6812 次 |
| 最近记录: |