Calcolo cifra di controllo per ISBN

voti
4

Questo non è in realtà compiti a casa, sto solo guardando attraverso alcune domande in un libro di matematica discreta prima di iniziare l'informatica la prossima settimana.

In ogni caso, una delle domande mi chiede di scrivere un programma per eseguire questo algoritmo (che spiega). La parte mi sono bloccato con è come prendere il numero 9 cifre e split in singoli numeri interi, in modo che i calcoli possono essere eseguiti su ogni cifra.

Ho pensato di dividere il numero per 100 milioni e poi con il valore intero di questo per ottenere la prima cifra, ma non sono sicuro di come ottenere gli altri.

Se questo è stato in PHP o qualcosa che potrebbe utilizzare explode (), ma credo che non è questo il punto qui: P

È pubblicato 12/09/2010 alle 23:15
fonte dall'utente
In altre lingue...                            


3 risposte

voti
4

È possibile utilizzare il mod (%) e dividere operatore (/).

N% 10 darebbe l'ultima cifra. N / 10 (divisione intera) rimuoverà l'ultima cifra.

È possibile continuare finché non si hanno più cifre.

Risposto il 12/09/2010 a 23:18
fonte dall'utente

voti
0

utilizzare l'operazione modulo:

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.
Risposto il 12/09/2010 a 23:19
fonte dall'utente

voti
1

Una volta che hai diviso per 100 milioni e portato il valore intero, è possibile moltiplicare questo valore intero indietro di 100 milioni e sottrarre dal ISBN. Che effettivamente appena si toglie la cifra più a sinistra. Così ora, ripetere con 10.000.000 - e così via.

Esempio con 5 cifre:

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

e così via!

Risposto il 12/09/2010 a 23:23
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more