Definiu una variable sense utilitzar l'operador aritmètic, relacional o condicional
Given three integers a b and c where c can be either 0 or 1. Without using any arithmetic relational and conditional operators set the value of a variable x based on below rules -
If c = 0 x = a Else // Note c is binary x = b.Examples:
Input: a = 5 b = 10 c = 0; Output: x = 5 Input: a = 5 b = 10 c = 1; Output: x = 10Solució 1: Using arithmetic operators If we are allowed to use arithmetic operators we can easily calculate x by using any one of below expressions -
x = ((1 - c) * a) + (c * b) OR x = (a + b) - (!c * b) - (c * a); OR x = (a * !c) | (b * c);CPP
#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 ; }
Output: 5Solució 2: Without using arithmetic operators The idea is to construct an array of size 2 such that index 0 of the array stores value of variable 'a' and index 1 value of variable b. Now we return value at index 0 or at index 1 of the array based on value of variable c. CPP
#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 ; }
Output: 10