不使用算术、关系或条件运算符设置变量

给定三个整数a、b和c,其中c可以是0或1。在不使用任何算术的情况下,关系运算符和条件运算符根据以下规则设置变量x的值——

null
If c = 0
    x = a
Else // Note c is binary
    x = b.

例如:

Input: a = 5, b = 10, c = 0;
Output: x = 5

Input: a = 5, b = 10, c = 1;
Output: x = 10

解决方案1: 使用算术运算符 如果允许我们使用算术运算符,我们可以通过使用以下任一表达式轻松计算x——

x = ((1 - c) * a) + (c * b)

OR

x = (a + b) - (!c * b) - (c * a);

OR

x = (a * !c) | (b * c);

#include <iostream>
using namespace std;
int calculate( int a, int b, int c)
{
return ((1 - c) * a) + (c * b);
}
int main()
{
int a = 5, b = 10, c = 0;
int x = calculate(a, b, c);
cout << x << endl;
return 0;
}


输出:

5

解决方案2: 不使用算术运算符 我们的想法是构造一个大小为2的数组,这样数组的索引0存储变量“a”的值和变量b的索引1的值。现在我们根据变量c的值返回数组的索引0或索引1的值。

#include <iostream>
using namespace std;
int calculate( int a, int b, int c)
{
int arr[] = {a, b};
return *(arr + c);
}
int main()
{
int a = 5, b = 10, c = 1;
int x = calculate(a, b, c);
cout << x << endl;
return 0;
}


输出:

10

本文由 阿迪蒂亚·戈尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享