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.