>> ROB Bowden: Živjo, jaz sem Rob.
In upam, da vam zaračunamo up za kredit.
Torej prva stvar, ki jo morate storiti se zahteva kreditno kartico
število od uporabnika.
Tukaj smo, da uporabljate getLongLong.
Lahko bi tudi getString, vendar V tem primeru, bi morali preveriti
da ni bilo non-številčne znakov v nizu.
Torej bomo uporabili getLongLong.
>> Ne pozabite, da ne morete uporabljati nekaj kot getInt, ker je število bo
prevelika, da bi ustrezal celo število.
Ko bomo imeli to številko smo vidim tukaj to zanko, medtem ko.
Torej je to zanko, medtem ko izvedbene Luhn algoritem, ki ga
glej v pset spec.
>> In to dejansko dogaja biti malo pameten.
Torej v pset spec, opazili, da Koraki Ena in Dva sta ločena.
Najprej smo šli čez celotno kreditno kartico Številka, ki išče vsak drugi
znak od drugega do zadnji znak, in jih pomnoži
in dodal, vse cifre.
Potem ko da smo dodali v vseh ostalih cifer.
>> Torej, namesto da bi tisti, v dveh samostojne korake, da bomo združiti
jim v eni ponovitvi več Celotna številka kreditne kartice.
Tukaj vidimo, int tren mestno enaka številko kreditne kartice, mod 10.
Kakšna je številka kreditne kartice mod 10 delaš?
To nam je kar zadnje številke v je celo število.
Torej, ne pozabite, da če bomo razdelili število navzgor z 10, nato preostanek
bi bilo karkoli, da zadnja števka.
23 deljeno z 10, Preostanek bo 3.
>> Torej, zadnja številka, zdaj tukaj, bomo videli smo razvejane za mult z 2.
Torej, kaj bomo uporabljali mult z 2, za katero je razlikovanje med
eden od "vsak drugi številk drugi stevilke ".
Mult z 2, se bo začela kot napačna, saj je zadnja številka ne bi smela
se šteje od predzadnja številko.
>> In potem na koncu to za zanke, smo glej, da bomo to spremenili
iz false na true.
Na naslednji ponovitvi za zanke, to se dogaja, da se šteje za resnično, dokler
konec, ko smo spremenili da iz true na false.
Ker boste potem bomo na tretji do Zadnje mesto, ki ni eden od
števke, da moramo pomnožite z 2.
>> Torej, če se zgodi, da se na enem od teh cifre, ki jih želimo pomnožiti z 2,
bomo videli smo tako, da naši vsoto.
In odtod, smo s pomočjo ternarnim operater enkrat
spet bit pameten.
Torej, če tren številka je manj kot 5, potem bomo lahko šele delati tren mestno krat 2.
To je preprosto.
Če je 1, potem želimo dodati 2.
Če je 2, želimo dodati 4.
Če je 4, želimo dodati 8.
>> Torej, kaj je tako posebnega 5?
No, 5-krat 2 je 10.
In ne pozabite na pset spec, da želimo dodati številk
število krat 2, in ne številka 2 krat sama.
Torej, če prvotno število je 7, 7 krat 2 je 14.
Želimo, da dodate 1 plus 4 številu, ne 14.
>> Torej tukaj, če je število 5 ali večje, kaj delamo, je tren mestna
krat 2 minus 9.
In če mislite o tem, 5 krat 2 je 10.
In tako smo dodajanjem 1, ki je 10 minus 9.
In 6-krat 2 je 12.
Torej smo dodajanjem 3, ki je 12 minus 9.
In da je dela za vse številke.
>> Tako da je tisto, kar smo dodajanjem na naši vsoto.
In to je tisto, kar je ostalo ravnanju korak Dva Luhn algoritem, ki je le
dodajanje cifro, če se to ne zgodi da je eden izmed vsakih drugih številk.
Torej, ko smo, da se ta držimo tir od prvih dveh znakov
številka kreditne kartice, prva dva številk, saj smo na koncu gredo
bi želeli uporabiti, da sem dol, da preveri, Vse je v redu, Visa mora začeti
S tem, in potrebuje American Express začeti s tem, in tako naprej.
>> Na koncu smo storili kreditno kartico število enako kreditno kartico
število deljeno z 10.
Zakaj to storimo?
No, pravkar smo ravnati zadnjo številko.
Deli s 10. bo premik celotno število več.
Torej, zdaj, ko smo zanka nazaj, smo bodo industrijska
predzadnja številko.
Potem, ko smo to še enkrat udaril, gremo odrezati predzadnji
mestna, povratna zanka, in ročaj tretji na zadnjem mestu, in tako naprej, dokler
Številka doseže 0, na kateri točki smo iztrgajo iz while zanko.
>> Mi smo tudi sledenja kredita Dolžina številko kartice, saj je to
Pomembno je razlikovati, ali je to Številka veljavno kreditno kartico.
Torej, zdaj, ko smo se izračuna ček, da lahko ugotovi, ali
je veljavno kartico.
Ček mod 10 je del od Luhn algoritem.
Če kontrolna mod 10 vrne nekaj ni nič, potem bo to vrne true,
v tem primeru, je število mora biti veljaven.
>> V nasprotnem primeru, če je ček mod 10 0, potem bomo lahko še naprej.
Ta velika drugega, če je rekel, če prvi dve številki sta enaka AMEX 1,
kjer je tukaj, smo videli, da AMEX 1, kot na spec je 34.
In bomo tudi primerjati za AMEX 2, ki je 37.
In kreditno kartico dolžina številka enaka pričakovani American Express
Dolžina kartico, potem lahko tiskanje American Express.
>> Naredili bomo podobno stvar z Visa.
Prvi dve številki morajo biti večja od ali enaka 40 ali manj
od ali enaka 49.
Tistih, ki predstavljajo veljavne kartice Visa.
In dolžina mora biti enaka Visa Dolžina 1 ali Visa Dolžina 2.
Tako mora biti dolžina bodisi Dolgi 13 ali 16 številk.
>> In končno z MasterCard, je podobno Visa, da prva dva
številke morajo biti v nekaterih območje, in mora dolžina
biti natančno 16 številk.
Torej, če katera koli od teh primerov držite, nato pa v Prvi primer, bomo natisniti AMEX.
Če v tem primeru drži, bomo natisniti Visa.
Če v tem primeru drži, se bomo tiskanje MasterCard.
>> Ampak, če nihče od tistih, ki imajo, čeprav če je ček veljaven,
smo še vedno natisnete neveljavna.
Ker to ni eden od te vrste kartic.
Moje ime je Rob, in upam, da vam našel kreditno zanimivo.