>> ROB BOWDEN: Hæ, ég er Rob.
Og ég vona að þú ert rukkaður upp fyrir lánsfé.
Svo fyrsta sem við þurfum að gera er farið fram á kreditkortið
númer frá notandanum.
Hér erum við með getLongLong.
Þú gætir hafa einnig notað getString, en í því tilviki, myndi þú þarft að athuga
að það voru engin non-töluna stafir í strengnum.
Þannig að við munum nota getLongLong.
>> Mundu að þú getur ekki notað eitthvað Eins GetInt, þar sem fjöldi verður
of stór til að passa í heila tölu.
Þegar við höfum að tala, við sjá hér á þessu meðan lykkja.
Þannig að þetta á meðan lykkja er framkvæmd Reiknirit Luhn um að þú
sjá í pset sérstakur.
>> Og það er í raun að fara að vera svolítið snjall.
Svo í pset sérstakur, eftir því að Stíga einn og tveir eru aðskilin.
Við förum fyrst yfir allt kreditkorti númer, leita annað hvert
eðli frá og með öðru til síðasta staf og margfalda þá
og bæta öllum tölustafir.
Svo eftir að bæta við í allar aðrar táar.
>> Svo í stað þess að gera þeim sem í tveimur aðskilin skref, við erum að fara að sameina
þá inn í einn endurtekning á því allt kreditkortanúmer.
Hér sjáum við int myntum tölustafur jafn kortanúmer, unga fólkið 10.
Hvað er kreditkortið Mod 10 gera?
Það er að gefa okkur síðasta tölustafnum í heilu tölu.
Svo muna að ef við skipt um tala upp um 10, þá afgangurinn
væri hvað þessi síðasta talan er.
23 deilt með 10, sem afgangurinn verður 3.
>> Svo síðustu stafa, nú hér, sjáum við við erum að greinar á tré á Mult um 2.
Svo það sem við erum að fara að vera með mult um 2 fyrir er að greina á milli
einn af "hverjum öðrum tölur frá seinni talan "tölur.
Mult um 2 er að fara að byrja út eins og rangar, frá síðustu talan ætti ekki
teljast frá second til síðasta tölustaf.
>> Svo þá í lok þessa fyrir lykkju, við sjá að við erum að fara að breyta þessu
frá ósatt í satt.
Á næstu endurtekning á fyrir lykkja, það er að fara að teljast satt fyrr
endirinn, þegar við breyta það frá satt að ósatt.
Því þá munum við vera á þriðja til Síðasta talan, sem er ekki einn af þeim
tölustafir að við ættum að margfalda með 2.
>> Þannig að ef við gerast til vera á einn af þeim tölustafir sem við viljum að margfalda með 2,
sjáum við að við erum að bæta við stöðva okkar.
Og hér erum við að nota ternary stjórnandi til einu sinni
aftur vera svolítið snjall.
Þannig að ef fyrri talan er lægri en 5, þá við getum bara gert nú tölustafur sinnum 2.
Það er einfalt.
Ef það er 1, þá viljum við að bæta við 2.
Ef það er 2, viljum við að bæta 4.
Ef það er 4, viljum við að bæta 8.
>> Svo er það sérstakt við 5?
Ja, 5 sinnum 2 er 10.
Og muna frá pset sérstakur að við viljum að bæta Tölustafir
Fjöldi sinnum 2, en ekki Fjöldi sinnum 2 sig.
Þannig að ef upprunalega númerið er 7, 7 sinnum 2 er 14.
Við viljum bæta 1 plús 4 til fjölda, ekki 14.
>> Svo hér, ef talan er 5 eða hærri, hvað við erum að gera er nú stafa
sinnum 2 mínus 9.
Og ef þér finnst um það, 5 sinnum 2 er 10.
Og svo við erum að bæta 1, sem er 10 mínus 9.
Og 6 sinnum 2 er 12.
Þannig að við erum að bæta 3, sem er 12 mínus 9.
Og það virkar fyrir öll númer.
>> Svo er það sem við erum að bæta að stöðva okkar.
Og þetta annað er það sem er að meðhöndlun Skref Tveir af reiknirit Luhn, sem er bara
bæta tölustafnum ef það gerist ekki að vera einn af hinum hverjum tölustöfum.
Svo þegar við höfum það, þetta er að halda lag af fyrstu tveimur stöfum
kortanúmerið, fyrstu tvö tölustafir, þar sem við erum loksins að fara
til að vilja nota það niður hér til að sannreyna, allt í lagi, Visa þarf að byrja
Með þessu, og American Express þörfum til að byrja með þetta, og svo framvegis.
>> Að lokum, gera við greiðslukort fjöldi jafngildir greiðslukort
fjöldi deilt með 10.
Hvers vegna gerum við það?
Jæja, meðhöndlaðar við bara síðasta tölustafnum.
Deila með 10 verður breyting allt númerið á.
Svo nú þegar við lykkja til baka, erum við að fara að meðhöndla það
second til síðasta tölustaf.
Svo þegar við högg þetta aftur, við erum að fara að skera burt annað að endast
stafa, lykkja til baka, og meðhöndla þriðja að síðasta tölustafinn, og svo framvegis, þar til
fjöldi nær 0, á hver benda við að brjótast út úr while lykkju.
>> Við erum einnig að halda utan um inneign Kortanúmer lengd, þar sem það er
mikilvægt að greina hvort það er gilt kreditkortanúmer.
Svo nú, þegar við höfum reiknað stöðva, getum við að ákvarða hvort það
er gilt kort.
The stöðva unga fólkið 10 er hluti reiknirit Luhn er.
Ef Stöðva unga fólkið 10 skilar eitthvað non-núll, þá mun þetta skila satt,
í því tilviki, fjöldi verður að vera ógild.
>> Annars, ef stöðva unga fólkið 10 er 0, þá getum við haldið áfram.
Þetta stór annars ef er að segja, ef fyrsta tveir tölustafir eru jöfn AMEX 1,
þar upp hér, sjáum við að AMEX 1, eins og á sérstakur, er 34.
Og við munum einnig bera það til AMEX 2, sem er 37.
Og kortanúmerið lengd er jafnt og sem búist var við American Express
kort lengd, þá getum við prenta American Express.
>> Við munum gera svipað hlutur með Visa.
Fyrstu tveir tölustafir þurfa að vera meiri en eða jafnt og 40, eða minna
en eða jafnt og 49.
Þeir tákna gilt Visa kort.
Og lengd þarf að vera jöfn Visa Lengd 1 eða Visa Lengd 2.
Og svo lengd verður að vera annað hvort 13 eða 16 stafir að lengd.
>> Og loks með MasterCard, það er svipað Visa, að tveir fyrstu
tölustafir þarf að vera í ákveðnum svið, og lengd verður
vera nákvæmlega 16 tölustafir.
Þannig að ef einhver af þeim tilvikum halda, þá í fyrsta tilfelli, munum við prenta Amex.
Ef þetta mál heldur, munum við prenta Visa.
Ef þetta mál heldur, við munum prenta MasterCard.
>> En ef enginn af þeim sem halda, jafnvel ef stöðva var gilt,
við prentað enn ógilt.
Því það er ekki eitt af þær tegundir af kortum.
Mitt nafn er Rob og ég vona að þú fann kredit áhugavert.