Hace 6 años | Por --92492--
Publicado hace 6 años por --92492--

Comentarios

D

Para el que lo saque se lo complico, que piensen lo mismo con martes 29, martes 30 y martes 31

D

#1 Ottia, eso es de ser mala persona

D

#2, tampoco es mucho más difícil. A las malas puedes coger los 28 posibles calendarios y mirarlo uno a uno, pero es más fácil

D

Pista forrma de hacerlo a mano.

Llamemos 0 a como están los días en enero. En febrero se desplazan 3 días debido a que Enero tiene 31 días. En año no bisiesto marzo igual que febrero, abril 3 más que marzo (6 más que enero), Mayo 2 más que abril, (uno más que Enero ya que al llegar a 7 nos quedamos igual), etc.

Así creáis una sucesión de 12 números correspondientes a los meses

0, 3, 3, 6, 1, 4, 6...

Y ahora... Bueno, he dicho que era una pista. Lo termináis.

Pd. En #2 dije posibles 28 calendarios, es mentira, son menos. El 28 es que tras esos años el calendario se repite, bueno, desde 1901 hasta 2099 (el 1900 y el 2100 no son bisiestos a pesar de ser múltiplos de 4 y rompen dicha regla).

fantomax

Covendrá separar en bisiestos y no bisiestos, supongo.
#0 sería menos cortito si pusiera lo de #1

TheIpodHuman

#0 ¿Martes y 13? Encannnaaaaaaaaaaaaaaaaaaaaaa!!!! lol lol

maria1988

Este me lo pusieron en primero de carrera en la asignatura de informática 1

D

Máximo 3. Mínimo 1

D

#8 Adjunto...

int mes[]=;
int main() {
int s=0, c=0; //dia semana, contador
for (int a=1 ; a

D

#5 y #9 ser es correcto... pero jo!! Matemáticas?

D

#6 he errado , aunque los resultados sean los mismos
febrero es _i == 0
y los meses de 31 días son _days1[_ii+1], con su correspondiente añadidura en los arreglos

D

En vez de intentar solucionarlo con lápiz y papel he escrito un programilla
He dispuesto dos arreglos (año normal y bisiesto) con los días de precesión en la semana para cada mes excepto diciembre, que no entra en los cálculos. Con un bucle que itera de 0 a 6 comienzo estableciendo el día de la semana del 13 de enero, siendo 0 el martes. En la primera vuelta comienzo con los dos contadores de coincidencias con un valor de 1 en vez de 0 del resto de los días de la semana. Con otro bucle dentro del anterior voy sumando los días de precesión de cada mes y si el resultado es múltiplo de 7 es que el día 13 de el mes correspondiente es martes. Al final de cada vuelta del primer bucle comparo los contadores y los guardo en caso de ser máximo o mínimo. El resultado final me dice que un año contiene al menos un martes y 13, con un máximo de tres.

int _days1[11] = ;
int _days2[11] = ;
int _iMax = 0;
int _iMin = 12;
int _i = 0;
for ( ; _i

D

#5 El resultado es el mismo para el martes 29 y el martes 30, no así para el martes 31 que un año puede no contener ninguno, con un máximo de dos.

if ( ( 0 == _precession1 % 7 ) && ( _ii != 1 ) ) // el día 29 de febrero no existe los años normales
 _count1 += 1;
if ( 0 == _precession2 % 7 )
 _count2 += 1;
...
if ( ( 0 == _precession1 % 7 ) && ( _ii != 1 ) ) // el día 30 de febrero no existe
 _count1 += 1;
...
if ( ( 0 == _precession1 % 7 ) && ( _days1[_ii] == 3 ) ) // solamente los meses de 31 días
 _count1 += 1;