>> ROB BOWDEN: Sveiki, aš esu Robas.
Ir aš tikiuosi, kad jūs mokate už kreditą.
Taigi pirmas dalykas, kurį reikia padaryti, yra paprašyti kreditinės kortelės
skaičius nuo naudotojo.
Čia mes naudojame getLongLong.
Jūs galite taip pat naudoti getString, bet Tokiu atveju, jūs turite patikrinti
kad ten nebuvo ne skaitmeninis simbolių eilutės.
Taigi mes naudojame getLongLong.
>> Atminkite, kad jūs negalite naudoti kažką kaip getInt, nes skaičius bus
per didelis, kad tilptų į sveikojo skaičiaus.
Kai mes turime šį numerį mes pamatyti čia tai, o kilpos.
Taigi, tai, o kilpa įgyvendinimo Luhn algoritmas, kad jūs
matyti pset spec.
>> Ir tai iš tikrųjų vyksta būti šiek tiek protingas.
Taigi, pset spec, pastebėsite, kad Pirmoje ir antroje veiksmus yra atskira.
Mes pirmą kartą eiti per visą kredito kortelės skaičius, ieško kas antrą
simbolis, pradedant nuo antrosios iki paskutinis simbolis, ir jų sklaida
ir pridėjus visus skaitmenis.
Tada po to, mes pridėti visų kitų skaitmenų.
>> Taigi, užuot tuos du atskiri etapai, mes ketiname sujungti
juos į vieną iteracijos per Visa kreditinės kortelės skaičius.
Čia mes matome, int dab skaitmenų lygu kredito kortelės numeris, mod 10.
Kas yra kredito kortelės numeris mod 10 darai?
Tai suteikia mums paskutinį skaitmenį į sveikojo skaičiaus.
Taigi nepamirškite, kad jei mes suskirstyti skaičių iki 10, tada likusi
būtų kokia kad paskutinis skaitmuo yra.
23, padalytą iš 10, likutis bus 3.
>> Taigi paskutinis skaitmuo, dabar čia matome mes šakojasi į mult iki 2.
Taigi, ką mes ketiname būti naudojant mult pagal 2 ir yra atskirti
vienas iš "visų kitų numerių, iš Antrasis skaitmuo "numeriai.
Mult iki 2 ketina pradėti kaip klaidinga, nes paskutinio skaitmens neturėtų
laikomas nuo antra, paskutinį jo skaitmenį.
>> Taigi tuo šios pabaigos linijos, mes matyti, kad mes ketiname tai pakeisti
iš klaidinga tiesa.
Į kitą iteracijos už kilpos, jis ketina laikyti tiesa, kol
pabaigoje, kai mes pakeisime tai iš tiesa klaidinga.
Nes tada mes būti trečioji paskutinis skaitmuo, kuris yra ne vienas
skaitmenys, kad mes turime padauginti iš 2.
>> Taigi, jei mes atsitiktų būti viena iš tų skaitmenys, kuriuos norime padauginti iš 2,
matome, mes įtraukiame į mūsų kontroline.
Ir čia mes naudojame trigubi operatorius kartą
vėl bus šiek tiek protingas.
Taigi, jei dab skaitmuo yra mažesnis nei 5, tada mes galime tik daryti dab skaitmenų kartus 2.
Tai paprasta.
Jei tai 1, tai mes norime pridėti 2.
Jei tai 2, mes norime pridėti 4.
Jei tai 4, mes norime pridėti 8.
>> Taigi, kas yra ypatingas apie 5?
Na, 5 kartus 2 10.
Ir atminkite iš pset spec kad mes norime pridėti su skaitmenimis
numeris kartų 2, o ne numeris kartų 2 pati.
Taigi, jei originalo numeris yra 7, 7 kartus 2 yra 14.
Mes norime pridėti 1 plius 4 numerį, o ne 14.
>> Taigi čia, jei skaičius yra 5 arba didesnis, ką mes darome yra dab skaitmenų
laikai 2 minus 9.
Ir jei jūs manote apie tai, 5 kartus 2 10.
Ir todėl mes pridedant 1, kuris yra 10 minus 9.
Ir 6 kartus 2 yra 12.
Taigi, mes pridedant 3, kuris yra 12 minus 9.
Ir tai tinka visais numeriais.
>> Štai ką mes pridedant mūsų kontroline.
Ir tai dar yra kas tvarkymo žingsnis Du Luhn algoritmas, kuris yra tiesiog
pridedant skaitmenį, jei tai neįvyks būti vienas iš visų kitų skaitmenų.
Taigi, kai mes turime, kad tai yra išlaikyti kelio pirmųjų dviejų simbolių
kredito kortelės numeris, pirmieji du skaitmenys, nes mes galų gale vyksta
norite naudoti, kad žemyn čia patikrinti, viskas gerai, "Visa" turi pradėti
Su šiuo, ir "American Express" poreikiai pradėti su tuo, ir pan.
>> Galiausiai, mes kreditine kortele kiekis yra lygus kreditine kortele
skaičius dalijamas iš 10.
Kodėl mes tai darome?
Na, mes tiesiog perkrauta paskutinį skaitmenį.
Dalijant iš 10 persikels Visas skaičius per.
Taigi dabar, kai mes kilpa atgal, mes bus tvarkyti
antra, paskutinį jo skaitmenį.
Tada, kai mes paspauskite dar kartą, mes einame nutraukė antrą paskutinis
skaitmenų, linijos atgal, ir dirbti trečia paskutinis skaitmuo, ir taip toliau, kol
skaičius pasiekia 0, o tai padarius mes išeiti iš while cikle.
>> Mes taip pat sekti kredito kortelės numeris ilgis, nes tai
Svarbu atskirti, ar tai galioja kreditinės kortelės numeris.
Taigi dabar, kai mes apskaičiuojamas kontrolinė, mes galime nustatyti, ar ji
yra galiojanti kortele.
Kontrolinė mod 10 dalis iš Luhn algoritmas.
Jei kontrolinė mod 10 grįžta kažkas ne nulis, tai grįš tikrasis,
tokiu atveju, skaičius turi būti neteisingas.
>> Priešingu atveju, jei kontrolinė mod 10 yra 0, tada mes galime tęsti.
Toks didelis kitas, jei sako, jei pirmas du skaitmenys yra lygūs AMEX 1,
kur čia matome, kad AMEX 1, pagal spec, yra 34.
Ir mes taip pat ją palyginti į AMEX 2, kuris yra 37.
Ir kreditinės kortelės numeris ilgis lygi tikėtino American Express
skyriaus ilgis, tada mes galime spausdinti American Express.
>> Mes padarysime panašus dalykas su Visa.
Pirmieji du skaitmenys turi būti didesnis kaip arba lygi 40 arba mažesnė
kaip arba lygi 49.
Tie atstovauti galiojanti viza korteles.
Ir ilgis turi būti lygus Vizų Ilgis 1 "ar" Visa Ilgis 2.
Ir taip ilgis turi būti arba 13 arba 16 skaitmenų.
>> Ir pagaliau su "MasterCard", tai panašus į Visa, kad pirmieji du
skaitmenys turi būti tikri, ribos, o ilgis turi
būti tiksliai 16 skaitmenų.
Taigi, jei bet kuris iš šių atvejų palaikykite, tada Pirmuoju atveju, mes spausdinti AMEX.
Jei šis atvejis turi, mes spausdinti viza.
Jei šis atvejis turi, mes spausdinti MasterCard.
>> Tačiau, jei nė vienas iš tų laikyti, net jei kontrolinė pagrįstas,
mes vis dar spausdinti negalioja.
Nes tai nėra vienas iš tie tipų korteles.
Mano vardas yra Rob ir aš tikiuosi, jums rasti kredito įdomu.