[Hilo Oficial] Esto también es otro arte...el ARTE de programar
#54
Cita
Definitivamente se puede hacer sin bucle alguno

N = lo que queramos, en este caso 100. Entero

Div5 = (n-1)/5
Div3 = (n-1)/3
Divchoque =(n-1)/(3*5)
Sol= ((div5+1)*5)*div5/2
Sol+= ((div3+1)*3)*div3/2
Sol-= ((divchoque+1)*(3*5))*divchoque/2
Return sol

Es la solucion optima.

Sencillamente aplico triangulacion. No recuerdo el nombre del teorema, pero la cosa es sencilla.

En el caso de 20, que se convierte en 15..., en vez de sumar 5 10 y 15... Si lo dibujamos, en una grafica... Nos encontramos con un triangulo. Si coge os este triangulo y lo superponemos, tenemos un cuadrado, donde

El alto es 20 (3+1)*5
El largo, 3
Si hacemos el area de esto es 60...
Y la del triangulo interior, 30

Resultado: se puede hacer la suma sin sumarlo todo. Las condiciones son fijas y el problema es sencillamente matematico.
Lo mismo para el 3
Y los choques cumplen la condicion que son multiplos de 3 y 5(15)... Por lo que con la misma tecnica, solo hace falta restar el area de estos.

Resultado. Se puede hacer el programa sin bucle alguno. Que es lo que mas interesa.

Vamos, que... Los que aun esteis en el colegio...
Vigilad que no os pongan el ejercicio en un examen de algebra
[align=center]Y mientras, en SobreLoQueOpinar...

[b]Análisis: Metroid Prime 3: Corruption


Mensajes en este tema
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 25-10-2012 15:34
Re:Esto también es otro arte...el ARTE de programar - por Corona Radiata - 27-10-2012 03:00
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 24-10-2012 16:47
Re:Esto también es otro arte...el ARTE de programar - por thewazaa - 25-10-2012 07:24

Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)