2008-08-27 16 views

Respuesta

5

Problema: Insertar signo + o - en cualquier lugar entre los dígitos 123456789 de tal manera que la expresión se evalúa a 100. La condición es que el orden de los dígitos no debe ser cambiado.

ej .: 1 + 2 + 3 - 4 + 5 + 6 + 78 + 9 = 100

programación Problema: Escribir un programa en su idioma preferido que da salida a todas las soluciones posibles del problema anterior.

0

Towers of Hannoi es ideal para practicar la recursividad.

También haré una búsqueda de ejemplos de preguntas de la entrevista de programación.

2

Hay algunos buenos ejemplos de preguntas de programación simple en el artículo de Steve Yegge Five Essential Phone Screen Questions (en el Área Número Uno: Codificación). Encuentro que estos son bastante buenos para hacer en papel y lápiz. Además, las preguntas bajo OOP Design en el mismo artículo se pueden hacer en papel y lápiz (o incluso en tu cabeza) y son, creo, buenos ejercicios para hacer.

0

Bastantes sitios en línea para programación competitiva están llenos de ejemplos de preguntas/desafíos, ordenados por 'dificultad'. Muy a menudo, creo que las categorías más simples en las preguntas de 'algoritmos' te convienen.

Por ejemplo, mira TopCoder (sección de algoritmos)!

Aparte de eso, 2 muestras:

  1. se le da una lista de n puntos en el plano por sus coordenadas (x_i, y_i), y un número R> 0. Da salida al número máximo de los N puntos dados que pueden ser cubiertos simultáneamente por un disco de radio R (para puntos de bonificación: ¿complejidad?).

  2. se le da un conjunto de n números a1 a una, y que desea calcular a1 * a2 * ... * aN/ai para todos los valores de i (lo que la salida es de nuevo un conjunto de N elementos) sin usar división. Proporcione un método (no ingenuo) (la complejidad debe estar en las multiplicaciones O (N)).

0

También me gusta Euler proyecto, pero me gustaría señalar que las preguntas se ponen muy complicado muy rápido. Después de las primeras 20 preguntas más o menos, comienzan a ser problemas que la mayoría de la gente no podrá resolver en media hora. Otro problema es que muchos de ellos se ocupan de las matemáticas con números realmente grandes, que no encajan en el entero estándar o incluso en los tipos de variables largos.

4

Si quieres un tipo de ejercicio de lápiz y papel, te recomendaría más diseño que codificación.

Codificando en realidad en papel apesta y te permite aprender casi nada.El entorno de trabajo sí importa escribir en una computadora, compilar, ver qué errores has cometido, usar refactor aquí y allá, simplemente no se puede comparar con lo que puedes hacer en un papel y, por lo tanto, qué puedes hacer en un Una hoja de papel, aunque es un ejercicio mental interesante, no es práctico, no mejorará tanto sus habilidades de codificación.

Por otro lado, puede diseñar la arquitectura de una aplicación mediana o incluso compleja a mano en un papel. De hecho, suelo hacerlo. Las herramientas de ingeniería (como Enterprise Architect) no son lo suficientemente buenas como para reemplazar los buenos diagramas all-hand-hand.

Los buenos proyectos podrían ser, ¿cómo diseñarías un motor de juego? Clases, Hilos, Almacenamiento, Física, las estructuras de datos que contendrán todo, y así sucesivamente. ¿Cómo comenzarías un motor de búsqueda? ¿Cómo diseñarías un sistema de reconocimiento de patrones?

Este tipo de problemas me resultan mucho más gratificantes que cualquier codificación en papel que pueda hacer.

Cuestiones relacionadas