在采访中提出的一个非常棘手的问题.
交换两个变量的值,如a=10和b=15.
通常要交换两个变量值,我们需要第三个变量,如:
temp=a;
a=b;
b=temp;
Run Code Online (Sandbox Code Playgroud)
现在的要求是,在不使用第三个变量的情况下交换两个变量的值.
有人可以帮我解决最短步骤评估三个条件的最快方法吗?我有三个条件,如果两个中的任何一个都是真的,那么整个表达式就变成了true另一个false.
我尝试了两种方法:
if ((condition1 && condition2) ||
(condition1 && condition3) ||
(condition2 && condition3))
Run Code Online (Sandbox Code Playgroud)
另一种方法是引入变量i和
i = 0;
if (condition1) i++;
if (condition2) i++;
if (condition3) i++;
if (i >= 2)
//do something
Run Code Online (Sandbox Code Playgroud)
我想要比上面两个更好的任何其他有效方法.
我在内存受限的环境中工作(Atmeta8具有8 KB的闪存)并且需要一个在C中工作的解决方案.