>> ROB Bowden: Hola, sóc Rob.
I espero que se li cobra per al crèdit.
Així que el primer que hem de fer se sol · licitarà la targeta de crèdit
nombre de l'usuari.
Aquí, estem utilitzant getLongLong.
Vostè podria també haver utilitzat getString, però en aquest cas, que havia necessitat de revisar
que no hi havia no numèric caràcters de la cadena.
Així que utilitzarem getLongLong.
>> Recordi que vostè no pot fer servir alguna cosa com getInt, ja que el nombre serà
massa gran per a cabre en un enter.
Un cop tinguem aquest nombre, ens veure aquí aquest bucle while.
Així que aquest bucle while s'executa L'algorisme de Luhn que
veure en el conjunt de processadors d'especificacions.
>> I en realitat va a ser una mica intel · ligent.
Així que en l'especificació de conjunt de processadors, observi que Passos un i dos són independents.
En primer lloc, repassem tota la targeta de crèdit nombre, a la recerca de tots els altres
caràcter inicial de la segona a últim caràcter, i multiplicant
i l'addició de tots els dígits.
Després, després d'això, afegim tots els altres dígits.
>> Així que en lloc de fer els de dos passos separats, anem a combinar
en una sola iteració sobre la número de targeta de crèdit sencer.
Aquí, veiem iguals dígits act int número de targeta de crèdit, mod 10.
Quin és el nombre de targeta de crèdit mod 10 fent?
Ens està donant l'últim dígit en tota la sèrie.
Així que recordi que si dividim la numerar per 10, llavors la resta
seria el que és últim dígit.
23 dividit per 10, la resta és 3.
>> Així que l'últim dígit, ara aquí, veiem estem ramificació en mult per 2.
Així que el que estarem fent servir mult per 2 per és diferenciar entre
un dels "tots els altres números de els segons números d'un dígit ".
De conformitat amb un 2 va a començar com fals, ja que l'últim dígit no ha
tenir en compte des del segon a l'últim dígit.
>> Així que després, al final d'aquest bucle, ens veiem que canviarem aquesta
de false a true.
En la següent iteració del bucle per, que va a considerar cert fins
Al final, quan canviem que de veritable a fals.
Perquè llavors estarem a la tercera a últim dígit, que no és un dels
dígits que hem de multiplicar per 2.
>> Així que si ens toca estar en un d'aquests xifres que volem multiplicar per 2,
veiem que estem afegint a la nostra suma de comprovació.
I aquí, estem usant la operador ternari a un cop
tornarà a ser una mica intel · ligent.
Així que si el dígit actual és inferior a 5, a continuació, només podem fer temps dígits act 2.
Això és simple.
Si és 1, llavors volem afegir 2.
Si és 2, volem afegir 4.
Si es tracta de 4, volem afegir 8.
>> Quin és tan especial sobre 5?
Bé, 5 per 2 és 10.
I recordi de l'especificació PSET que volem afegir els dígits del
nombre multiplicat per 2, i no el nombre multiplicat per si mateix 2.
Així que si el nombre original és 7, 7 per 2 és 14.
Volem afegir 1 més 4 al nombre, no 14.
>> Així que aquí, si el nombre és 5 o major, el que estem fent és el dígit act
2 cops menys 9.
I si es pensa que, 5 per 2 és 10.
I així estem afegint 1, que és 10 menys 9.
I 6 per 2 és 12.
Així que anem a afegir 3, que és 12 menys 9.
I això funciona per a tots els números.
>> Així que això és el que estem afegint a la nostra suma de comprovació.
I aquesta altra cosa és el que el maneig de Pas Dos algorisme de Luhn, que és just
afegint el dígit si no succeeix ser cada un dels altres dígits.
Així que una vegada que tinguem això, això és mantenir un seguiment dels dos primers caràcters de
el número de targeta de crèdit, els dos primers dígits, ja que estem amb el temps van
a voler usar aquest aquí per verificar, bé, un visat ha de començar
amb això, i que necessita un American Express per començar amb aquest, i així successivament.
>> Finalment, fem la targeta de crèdit número de targeta de crèdit és igual
nombre dividit per 10.
Per què fem això?
Bé, només fem servir l'últim dígit.
Dividint per 10 es desplaçarà el nombre enter més.
Així que ara quan ens bucle de nou, estem serà el maneig de la
segon a l'últim dígit.
Després, quan vam arribar a aquest nou, anem per tallar el penúltim
dígits, de tornada del bucle, i manejar la tercera l'últim dígit, i així successivament, fins que la
nombre arriba a 0, en el punt sortim de el bucle while.
>> També estem mantenint un registre del crèdit Longitud del número de la targeta, ja que és
important distingir si es tracta de un número de targeta de crèdit vàlida.
Així que ara, un cop hem calculat el checksum, podem determinar si
és una targeta vàlida.
La suma de comprovació mod 10 és part l'algorisme de Luhn.
Si la suma de comprovació mod 10 torna una mica diferent de zero, llavors això va a tornar true,
en aquest cas, el nombre ha de ser vàlida.
>> En cas contrari, si la suma de comprovació mod 10 és 0, llavors podem continuar.
Aquest gran cosa si està dient, si la primera dos dígits són iguals a 1 AMEX,
on fins aquí, veiem que AMEX 1, segons l'especificació, és a dir 34.
I també anem a comparar a AMEX 2, que és 37.
I la targeta de crèdit longitud del nombre és igual a l'esperada American Express
la longitud de la targeta, llavors podem imprimir American Express.
>> Farem una cosa similar amb Visa.
Els dos primers dígits han de ser més que o igual a 40, o menys
que o igual a 49.
Aquells representen les targetes Visa vàlids.
I la longitud ha de ser igual a Visa o Visa Longitud 1 Longitud 2.
I així, la longitud ha de ser 13 o 16 dígits.
>> I finalment amb MasterCard, que és similar a Visa, que els dos primers
dígits necessiten estar en un cert rang, i el most de longitud
ser exactament 16 dígits.
Així que si algun d'aquests casos se sostenen, llavors en el primer cas, anem a imprimir AMEX.
Si aquest cas es manté, anem a imprimir Visa.
Si aquest cas es manté, anem a imprimir MasterCard.
>> Però si cap dels que sostenen, fins i tot Si la suma de comprovació era vàlid,
encara imprimim vàlid.
Perquè no és un els tipus de targetes.
El meu nom és Rob, i espero que trobat interessant crèdit.