Entrada: una array arr[] de dos elementos con valor 0 y 1
Salida: convierte ambos elementos en 0.
Especificaciones: Las siguientes son las especificaciones a seguir.
1) Se garantiza que un elemento es 0 pero no sabemos su posición.
2) No podemos decir sobre otro elemento que puede ser 0 o 1.
3) Solo podemos complementar elementos de array, ninguna otra operación como and, or, multi, division, …. etc.
4) No podemos usar construcciones if, else y loop.
5) Obviamente, no podemos asignar 0 directamente a los elementos de la array.
Hay varias formas de hacerlo, ya que estamos seguros de que siempre hay un cero. Gracias a devendraiiit por sugerir los siguientes 3 métodos.
Método 1
C++
#include <bits/stdc++.h> using namespace std; void changeToZero(int a[2]) { a[ a[1] ] = a[ !a[1] ]; } // Driver code int main() { int a[] = {1, 0}; changeToZero(a); cout<<"arr[0] = "<<a[0]<<endl; cout<<" arr[1] = "<<a[1]; return 0; } // This code is contributed by rathbhupendra
C
void changeToZero(int a[2]) { a[ a[1] ] = a[ !a[1] ]; } int main() { int a[] = {1, 0}; changeToZero(a); printf(" arr[0] = %d \n", a[0]); printf(" arr[1] = %d ", a[1]); getchar(); return 0; }
Java
import java.io.*; class GFG{ public static void changeToZero(int a[]) { a[a[1]] = a[1 - a[1]]; } // Driver code public static void main(String args[]) { int[] arr; arr = new int[2]; arr[0] = 1; arr[1] = 0; changeToZero(arr); System.out.println("arr[0]= " + arr[0]); System.out.println("arr[1]= " + arr[1]); } } // This code is contributed by rohitsingh07052
Python3
def changeToZero(a): a[ a[1] ] = a[ not a[1] ] return a # Driver code if __name__=='__main__': a = [1, 0] a = changeToZero(a); print(" arr[0] = " + str(a[0])) print(" arr[1] = " + str(a[1])) # This code is contributed by Yash_R
C#
using System; class GFG { public static void changeToZero(int[] a) { a[a[1]] = a[1 - a[1]]; } // Driver code public static void Main() { int[] arr; arr = new int[2]; arr[0] = 1; arr[1] = 0; changeToZero(arr); Console.WriteLine("arr[0]= " + arr[0]); Console.WriteLine("arr[1]= " + arr[1]); } } // This code is contributed by souravmahato348.
Javascript
<script> function changeToZero(a) { a[a[1]] = a[1 - a[1]]; } // Driver code let arr; arr = []; arr[0] = 1; arr[1] = 0; changeToZero(arr); document.write("arr[0] = " + arr[0] + "<br/>"); document.write("arr[1] = " + arr[1]); // This code is contributed by avijitmondal1998 </script>
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Método 2
C
void changeToZero(int a[2]) { a[ !a[0] ] = a[ !a[1] ] }
Java
void changeToZero(int [2]a) { a[!a[0]] = a[!a[1]]; } // This code is contributed by souravmahato348.
Python3
def changeToZero(a): a[ !a[0] ] = a[ !a[1] ] # This code is contributed by sanjoy_62.
C#
static void changeToZero(int [2]a) { a[!a[0]] = a[!a[1]]; } // This code is contributed by souravmahato348.
Javascript
<script> function changeToZero(a) { a[ !a[0] ] = a[ !a[1] ]; } // This code is contributed by souravmahato348. </script>
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Método 3
Este método ni siquiera necesita complemento.
C
void changeToZero(int a[2]) { a[ a[1] ] = a[ a[0] ] }
Java
static void changeToZero(int a[2]) { a[ a[1] ] = a[ a[0] ] } // this code is contributed by shivanisinghss2110
Python3
def changeToZero(a) : a[ a[1] ] = a[ a[0] ]
C#
static void changeToZero(int[] a) { a[ a[1] ] = a[ a[0] ]; } //this code is contributed by phasing17
Javascript
function changeToZero(a) { a[ a[1] ] = a[ a[0] ]; } //this code is contributed by phasing17
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Método 4
Gracias a purvi por sugerir este método.
C
void changeToZero(int a[2]) { a[0] = a[a[0]]; a[1] = a[0]; }
Java
static void changeToZero(int a[]) { a[0] = a[a[0]]; a[1] = a[0]; } //This code is contributed by shruti456rawal
C#
static void changeToZero(int[] a) { a[0] = a[a[0]]; a[1] = a[0]; } //This code is contributed by shruti456rawal
Python3
# Python code for the above approach def changeToZero(a) : a[0] = a[a[0]] a[1] = a[0] # This code is contributed by splevel62.
Javascript
// JavaScript function to implement // the approach function changeToZero(a) { a[0] = a[a[0]]; a[1] = a[0]; } // This code is contributed by phasing17
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Puede haber muchos más métodos.
Escriba comentarios si encuentra que los códigos anteriores son incorrectos o encuentre otras formas de resolver el mismo problema.
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