Números que desaparecen
El problema requiere que la
matriz nums contenga todos los números enteros de 0 an, pero falta uno. Escriba el código para encontrar el número entero que falta. ¿Puedes hacerlo en O (n) tiempo?
La idea es
que debido a que los elementos de la matriz son números del 0 al n, que son exactamente iguales a los subíndices, puede usar las dos fórmulas a ^ a = 0 y 0 ^ a = a para programar. Solo el número que falta aparece una vez, los números restantes aparecen dos veces.
Código
#include <stdio.h>
int FindNum(int str[],int len)
{
int s = 0;
for (int i = 0; i < len; i++)
{
s ^= i;
s ^= str[i];
}
s ^= len;
return s;
}
int main()
{
int str[] = { 1, 9, 8, 7, 6, 4, 3, 2, 10 , 0};
printf("%d", FindNum(&str, sizeof(str) / sizeof(int)));
return 0;
}