Ver Mensaje Individual
  #108 (permalink)  
Antiguo 11/12/2014, 16:40
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 6 meses
Puntos: 49
Respuesta: Petando la pila. Problemas y retos usando recursividad.

Cita:
Iniciado por kutcher Ver Mensaje
Excelente observación leosansan y ahora paso a explicar porque funciona,
como pueden notar nos encontramos ante un comportamiento indefinido en el lenguaje C en este caso con respecto al operador de desplazamiento a la izquierda:
.................................................. ........
Se espera como resultado el cero, debido a que los bits que salen por la izquierda se pierden, los que entran por la derecha se rellenan con ceros pero en la expresión que utilizo eso no sucede ocurre una especie de rotación
.................................................. ........
Excelente explicación amigo kutcher, pero en mi ordenata se obtiene el cero:

Código C++:
Ver original
  1. [0] = 1 << 9 * 6

Cita:
Iniciado por kutcher Ver Mensaje
Y en vista de todo esto expongo otra opción pero utilizando otro método para identificar los dígitos, como van a ver hago uso del producto de los números primos:

Código C++:
Ver original
  1. int primos[10] = {2, 3, 5, 7, 11, 13, 17, 23, 29, 31};
También puedes usar los números de la sucesión de Fibonacci no repes inicialmente:

Código C++:
Ver original
  1. int primos[10] = {1,2, 3, 5, 13, 21, 34, 55, 89, 144};

¡¡¡Saluditos!!!