我想编写一个程序,如果第一个数字较大,则将第二个数字乘以2,如果第二个数字较大,则将第一个数字除以2。有没有其他方法可以在没有循环的情况下执行:或? ?
答案 0 :(得分:1)
您可以使用可转换为0
或1
的布尔表达式,当值为0
时,该表达式无效。
如果第一个数字更大,将第二个数字乘以2
second = second + (first > second) * second;
如果第二个更大,则将第一个除以2。
first = first - (second > first) * (first / 2);
答案 1 :(得分:0)
我认为你的问题可能会在没有if:
的情况下以这种方式解决 int tempA=a;
int tempB=b;
while (a>b){
tempA=a*2;
a=b;
}
while(a<b){
tempA=a/2;
a=b;
}
a=tempA;