Ayuda al problema de "Matemáticas de Einstein" en lenguaje C
El problema matemático de Einstein
Einstein planteó un problema matemático como este: Hay una escalera larga. Si cada escalón abarca 2 escalones, entonces quedará un escalón al final. cada paso toma 3 pasos, entonces quedarán 2 pasos. Si cada paso toma 5 pasos, quedarán 4 pasos. Si cada paso toma 6 pasos, quedarán 5 pasos. Sólo después de cruzar 7 niveles cada vez, quedará exactamente un nivel. ¿Cuantos escalones tiene esta escalera?
*Análisis de Problemas y Diseño de Algoritmos
Según el significado de la pregunta, el número de pasos satisface el siguiente conjunto de congruencias:
x≡1 ( mod2)
x≡2 (mod3)
x≡4 (mod5)
x≡5 (mod6)
x≡ 0 (mod7)
*Descripción del programa y comentarios
#include
void main()
{
int i=1; /*i es el número de pasos establecidos*/
while(!((i%2==1)&&(i%3==2) &&(i%5 ==4)&&(i%6==5)&&(i%7==0)))
++i; expresiones*/
printf("Staris_number=%d\n",i);
}
*Ejecutar resultados
Staris_number =119
*Más discusión sobre el problema
El algoritmo para esta pregunta también puede considerar encontrar el mínimo común múltiplo n de 1, 2, 4 y 5, y luego determinar si t (t es n-1) ≡ 0 (mod 7) Establecido, si no está establecido, t = t + n, y luego juzgue hasta que se seleccione el valor t que cumpla con las condiciones.