Dados tres números enteros a, b y c, donde c puede ser 0 o 1. Sin usar ningún operador aritmético, relacional y condicional, establezca el valor de una variable x según las siguientes reglas:
If c = 0 x = a Else // Note c is binary x = b.
Ejemplos:
Input: a = 5, b = 10, c = 0; Output: x = 5 Input: a = 5, b = 10, c = 1; Output: x = 10
Solución 1: usar operadores aritméticos
Si se nos permite usar operadores aritméticos, podemos calcular x fácilmente usando cualquiera de las siguientes expresiones:
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; }
Producción:
5
Solución 2: Sin usar operadores aritméticos
La idea es construir una array de tamaño 2 tal que el índice 0 de la array almacene el valor de la variable ‘a’ y el índice 1 el valor de la variable b. Ahora devolvemos el valor en el índice 0 o en el índice 1 de la array según el valor de la variable c.
#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; }
Producción:
10
Este artículo es una contribución de Aditya Goel . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA