给定三个整数a,b和c,其中c可以为0或1。在不使用任何算术运算的情况下,关系和条件运算符根据以下规则设置变量x的值–
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
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
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
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。