Red de conocimiento informático - Consumibles informáticos - Cómo resolver el problema del soldado de Han Xin... sin enumeración (lenguaje C)

Cómo resolver el problema del soldado de Han Xin... sin enumeración (lenguaje C)

# incluir & ltstdio.h & gt

int main()

{

int a, b, c, n

Printf("Ingrese tres números:");

scanf("%d%d%d",&one,&b&c);

n = (70 * a+21 * b+15 * c)% 105;

Printf("El resultado es %d+105*n (n es cualquier número natural)\n ",n);

}

//Multiplicar a por 70 hace que este número sea módulo 3, porque 70 módulo 3 obtiene 1, por lo que a*70 módulo 3 obtiene a; además, 21, 15 módulo 3 obtiene 0, por lo que el resultado de multiplicarlos por cualquier valor permanece sin cambios;

21*b corresponde a 5 y 7 en 15*c respectivamente;

El resultado de la suma módulo 105 se debe a que 105 es el mínimo común múltiplo de 3, 5 y 7, el resultado de +-105 no afectará el módulo, por lo que al tomar el módulo se obtendrá el valor mínimo.

Referencia:

Enciclopedia Baidu: Teorema del resto de China (Teorema de Sun Tzu)

/view/157384.htm? sub mmaid = 157384 & from enter = % D6 % D0 % B9 % FA % CA % A3 % D3 % E0 % B6 % A8 % C0 % ED