Red de conocimiento informático - Conocimiento de la instalación - Ayuda al problema de "Matemáticas de Einstein" en lenguaje C

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.