给定三个整数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