>> ROB BOWDEN: Ciao, sono Rob.
E spero che tu stia addebitato up per il credito.
Quindi prima cosa che dobbiamo fare è richiesta la carta di credito
numero dall'utente.
Qui, stiamo usando getLongLong.
Si potrebbe avere anche usato getString, ma in questo caso, avresti bisogno di controllare
che non c'erano non numerico caratteri della stringa.
Così useremo getLongLong.
>> Ricordate che non è possibile utilizzare qualcosa come getInt, dal momento che il numero sarà
troppo grande per stare in un numero intero.
Una volta che abbiamo quel numero, ci vedi qui ciclo while.
Quindi questo ciclo while sta attuando L'algoritmo di Luhn che si
vedere le specifiche pset.
>> E sta realmente succedendo ad essere un po 'intelligente.
Così nella specifica pset, notare che Passaggi uno e due sono separati.
Per prima cosa andiamo su tutta la carta di credito numero, alla ricerca di ogni altro
carattere a partire dal secondo al ultimo carattere, e moltiplicandoli
e aggiungendo tutte le cifre.
Poi, dopo che, aggiungiamo in tutte le altre cifre.
>> Così, invece di fare quelle due fasi distinte, stiamo andando a combinare
li in una iterazione sulla numero di carta di credito.
Qui, vediamo int uguali cifre CUR numero di carta di credito, mod 10.
Qual è il numero di carta di credito mod 10 facendo?
Ci sta dando l'ultima cifra in numero intero.
Quindi ricorda che se abbiamo diviso il numerare da 10, poi il resto
sarebbe tutto ciò che l'ultima cifra è.
23 diviso 10, il resto sarà 3.
>> Così l'ultima cifra, ora qui, vediamo stiamo ramificazione sul mult da 2.
Quindi ciò che andremo a utilizzare mult per 2 per sta differenziando tra
uno dei "ogni altri numeri da Il secondo "numeri a due cifre.
Mult da 2 sta per iniziare come falso, dal momento che l'ultima cifra non dovrebbe
essere considerato dal secondo per ultima cifra.
>> Allora alla fine di questo ciclo for, abbiamo vediamo che stiamo andando a modificare questa
da false a true.
Nella successiva iterazione del ciclo, sta andando a considerare vero fino
Alla fine, quando cambiamo da true a false.
Perché allora saremo sul terzo ultima cifra, che non è uno dei
cifre che dobbiamo moltiplicare per 2.
>> Quindi, se ci capita di essere in una di quelle cifre che vogliamo moltiplicare per 2,
vediamo stiamo aggiungendo alla nostra checksum.
E qui, stiamo usando la operatore ternario di una volta
ancora una volta essere un po 'intelligente.
Quindi, se cur cifra è inferiore a 5, quindi possiamo solo fare volte cifra CUR 2.
Questo è semplice.
Se è 1, allora vogliamo aggiungere 2.
Se è 2, vogliamo aggiungere 4.
Se è 4, vogliamo aggiungere 8.
>> Allora, cosa c'è di speciale 5?
Beh, 5 volte 2 è 10.
E ricordate dalla specifica pset che vogliamo aggiungere le cifre del
volte numero 2 e non il numero di volte 2 stesso.
Quindi se il numero originale è 7, 7 volte 2 è 14.
Vogliamo aggiungere 1 più 4 al numero, non 14.
>> Così qui, se il numero è 5 o maggiore, quello che stiamo facendo è cifra attuale
2 volte meno 9.
E se si pensa che, 5 volte 2 è 10.
E così stiamo aggiungendo 1, che è 10 meno 9.
E 6 volte 2 è 12.
Quindi stiamo aggiungendo 3, che 12 è meno 9.
E che funziona per tutti i numeri.
>> Ed è quello che stiamo aggiungendo alla nostra checksum.
Ed il resto è quello che sta Passo movimentazione Due di algoritmo di Luhn, che è appena
aggiungendo la cifra se non accade essere una delle ogni altre cifre.
Quindi, una volta che abbiamo questo, questo è mantenere registra i primi due caratteri
il numero della carta di credito, i primi due cifre, dal momento che stiamo finalmente andando
a voler usare quella qui a verificare, tutto bene, un visto deve iniziare
con questo, e una necessità American Express iniziare con questo, e così via.
>> Infine, facciamo la carta di credito numero uguale di carta di credito
numero diviso per 10.
Perché lo facciamo?
Beh, abbiamo appena gestito l'ultima cifra.
Dividendo per 10 si sposterà l'intero numero sopra.
Così ora quando ci loop back, siamo andando a gestire la
secondo per ultima cifra.
Poi, quando ci ha colpito di nuovo, stiamo andando tagliare il penultimo
cifre, indietro loop, e gestire il terzo per durare cifre, e così via, fino alla
numero raggiunge 0, a questo punto rompiamo fuori dal ciclo while.
>> Stiamo anche tenere traccia del credito lunghezza del numero della carta, dato che è
importante distinguere se è un numero di carta di credito valida.
Così ora, una volta che abbiamo calcolato la checksum, siamo in grado di determinare se
è una tessera valida.
Il mod checksum 10 è parte dell'algoritmo di Luhn.
Se checksum mod 10 rendimenti qualcosa non-zero, allora questo restituirà true,
in tal caso, il numero deve essere valido.
>> Altrimenti, se checksum mod 10 è 0, allora possiamo continuare.
Questo grande else if sta dicendo, se il primo due cifre sono uguali a AMEX 1,
dove fino qui, vediamo che AMEX 1, come da specifiche, è 34.
E ci confronteremo anche per AMEX 2, che è 37.
E il numero di lunghezza carta di credito è pari al previsto American Express
lunghezza della carta, allora possiamo stampare American Express.
>> Faremo una cosa simile con Visa.
Le prime due cifre devono essere maggiori o uguale a 40, o meno
o uguale a 49.
Coloro che rappresentano carte Visa valide.
E la lunghezza deve essere uguale a Visa Lunghezza 1 o Visa Lunghezza 2.
E così la lunghezza deve essere 13 o 16 cifre lunga.
>> E infine con MasterCard, è simile a Visa, che i primi due
cifre devono essere in un certo gamma, e il mosto lunghezza
essere esattamente 16 cifre.
Quindi, se uno qualsiasi di questi casi tenere, poi in nel primo caso, noi lo stamperemo AMEX.
In questo caso vale, noi lo stamperemo Visa.
In questo caso vale, faremo stampare MasterCard.
>> Ma se nessuno di coloro che detengono, anche se il checksum era valido,
abbiamo ancora stampiamo valido.
Perché non è una delle questi tipi di carte.
Il mio nome è Rob, e spero trovato interessante credito.