Pregunta

Esto no es realmente la tarea, sólo estoy mirando a través de algunas preguntas de matemáticas discretas en un libro antes de empezar la informática próxima semana.

De todos modos, una de las preguntas me pide que escriba un programa para llevar a cabo este algoritmo (que se explica). La parte que estoy atascado con es cómo tomar el número de 9 dígitos y "dividir" en números enteros individuales, por lo que los cálculos se pueden realizar en cada dígito.

I pensó en dividir el número entre 100 millones y luego tomando el valor entero de esto para conseguir el primer dígito, pero no estoy seguro de cómo llegar a los demás.

Si esto fue en PHP o algo que simplemente podría utilizar explotar (), pero supongo que no es el punto aquí: P

¿Fue útil?

Solución

Se puede usar el mod (%) y dividir (/) del operador.

N% 10 sería darle el último dígito. N / 10 (división entera) se eliminará el último dígito.

Se puede continuar hasta que no tienen más dígitos.

Otros consejos

Una vez que ha dividido por 100 millones, y dado el valor entero, puede volver luego se multiplica este valor entero por 100 millones y restarlo del ISBN. Que en efecto sólo se quita el extremo izquierdo dígitos. Así que ahora, con la repetición 10000000 -. Y así sucesivamente

Ejemplo con 5 dígitos:

Start: 74325

74325/10000 and int = 7 (there's your first digit)
7 * 10000 = 70000
74325 - 70000 = 4325

4325/1000 and int = 4 (there's your next digit)
4 * 1000 = 4000
4325 - 4000 = 325

y así sucesivamente!

utilizar la operación de módulo:

a % 10 to get the last digit
a % 100 to get the last two digits. (a % 100) - (a % 10) to get the second last number
etc.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top