Introducción
Me encontré con este patrón (inútil) el otro día mientras veía la televisión. Lo llamé "el patrón 9" porque el primer número que lo usó fue 9. La esencia de esto es que ingresas un número (digamos x ) y luego regresas:
- X
- x + ( x / 3) [llamemos a esto y ]
- dos tercios de y [llamemos a esto z ]
- z + 1
Entonces, si pongo dentro de este patrón el número 9 como x , esto es lo que saldría:
- 9 ( 9 )
- 12 ( 9 + 9/3 ) [9 sobre 3 es 3, y 9 + 3 es 12]
- 8 ( 12 veces dos tercios) [un tercio de 12 es 4 y 4 * 2 es 8]
- 9 ( 8 + 1 es 9)
Desafío
Escríbeme una función (en cualquier lenguaje de programación) que tome un número y genere una matriz entera usando el patrón.
Algo así como este código psuedo:
function ninePattern(int myInt) returns IntegerArray {
int iterationA = myInt + (myInt / 3);
int iterationB = iterationA * (2 / 3);
int iterationC = iterationB + 1;
IntegerArray x = [myInt, iterationA, iterationB, iterationC];
return x;
}
Aclaraciones
Las discusiones han suscitado comentarios sobre las especificaciones de la pregunta. Esta sección está destinada a aclarar algunos de esos.
"mejor contar en bytes que en caracteres"
Elegí personajes porque (para mí, al menos) sería más fácil de juzgar. Por supuesto, no puedo cambiar eso ahora. (muchas respuestas ya están publicadas)
"redondeo"
El redondeo sigue esta rima:
Si es 5 o más, aumente la puntuación.
Si es 4 o menos, déjelo descansar.
En pocas palabras, si es algo así como 4.7 o 3.85, redondee a 5 y 4 respectivamente.
Ejemplos
Input => Result
9 => [9, 12, 8, 9]
8 => [8, 11, 7, 8]
6 => [6, 8, 5, 6]
23 => [23, 31, 21, 22]
159 => [159, 212, 141, 142]
Sin embargo, si los números son algo así como 2.3 o 10.435446, redondea a 2 y 10 respectivamente.
"ayuda de idioma"
Usted es libre de no usar funciones y / o matrices SI Y SOLO SI el idioma de su elección no los admite. Si lo hace (incluso si aumentará el recuento de tus personajes), debes usarlos .