Rob Bowden: Hi, unë jam Rob. Dhe unë shpresoj se ju jeni akuzuar për kredi. Gjëja Pra, së pari ne duhet të bëjmë është të kërkojë kartën e kreditit Numri i nga përdoruesit. Këtu, ne jemi duke përdorur getLongLong. Ju mund të ketë përdorur edhe getString, por në këtë rast, ju do të duhet të kontrolloni se nuk ka pasur jo-numerike karaktere në vargun. Pra, ne do të përdorim getLongLong. Mos harroni se ju nuk mund të përdorni diçka si getInt, pasi që numri do të jetë shumë të mëdha për të përshtaten në një numër të plotë. Pasi ne kemi atë numër, ne shih këtu këtë loop ndërsa. Pra, kjo loop, ndërsa është duke zbatuar Algorithm Luhn që ju shih në spekulim pset. Dhe është e vërtetë do të jetë pak i zgjuar. Pra, në spekulim pset, vëreni se Hapat Një dhe Dy janë të ndara. Ne e parë të shkoj për të gjithë kartën e kreditit numër, në kërkim të çdo tjetër karakter duke filluar nga e dytë të Karakteri i fundit, dhe duke e shumëzuar ato dhe duke shtuar të gjitha shifrat. Pastaj pas kësaj, ne të shtoni në gjitha numra të tjerë. Pra, në vend që të bëjnë ato në dy hapa të ndara, ne jemi duke shkuar për të kombinuar ata në një përsëritje gjatë gjithë numrin e kartës së kreditit. Këtu, ne shohim int barabartë monedhes shifra numrin e kartës së kreditit, mod 10. Cili është numri i kartës së kreditit mod 10 duke bërë? Kjo na është dhënë shifrën e fundit në numrin e plotë. Pra, mbani mend se në qoftë se ne të ndarë numërosh deri me 10, atëherë pjesa e mbetur do të jetë çdo gjë që shifra e fundit është. 23 ndarë nga 10, Pjesa tjetër do të jetë 3. Pra, shifra e fundit, tani këtu, ne shohim ne jemi bronkial në mult me ​​2. Pra, ajo që ne do të jetë duke përdorur mult me 2 për është e dalluar një nga "çdo numra të tjera nga e dyta shifrore "numrat. Mult nga 2 do të filloni si i rremë, pasi shifra e fundit nuk duhet të të konsiderohet nga dytë të shifrës së fundit. Kështu, pra, në fund të kësaj për lak, ne shihni se ne jemi duke shkuar për të ndryshuar këtë nga rreme të vërtetë. Në përsëritje e ardhshëm të për lak, ajo do të konsiderohet e vërtetë deri fundi, kur ne të ndryshojmë kjo e vërtetë nga të rreme. Sepse atëherë ne do të jemi në të tretë të shifra e fundit, i cili nuk është një nga shifrat që ne duhet të shumëzohet me 2. Pra, në qoftë se ne të ndodhë të jetë në një nga ato shifrat që ne duam të shumohen me 2, ne shohim ne jemi duke shtuar për të checksum tonë. Dhe këtu, ne jemi duke përdorur Operatori tresh për herë përsëri të jetë pak i zgjuar. Pra, nëse cur shifra është më pak se 5, atëherë ne mund të bëjmë vetëm herë njeri i paedukuar shifra 2. Kjo është e thjeshtë. Në qoftë se kjo është 1, atëherë ne duam të shtoni 2. Nëse është e 2, ne duam të shtoni 4. Nëse është e 4, ne duam të shtoni 8. Pra, çfarë është e veçantë rreth 5? E pra, 5 herë 2 është 10. Dhe mbani mend nga spec pset që ne duam të shtoni shifrat e herë numrin 2, dhe jo herë numri 2 vetë. Pra, në qoftë se numri origjinal është 7, 7 herë 2 është 14. Ne duam të shtoni 1 plus 4 numrit, jo 14. Kështu që këtu, në qoftë se numri është 5 ose më e madhe, ajo që ne po bëjmë është shifra aktuale 2 herë minus 9. Dhe në qoftë se ju mendoni për këtë, 5 herë 2 është 10. Dhe kështu që ne jemi duke shtuar 1, cili eshte 10 minus 9. Dhe 6 herë 2 është 12. Pra, ne jemi duke shtuar 3, e cila është 12 minus 9. Dhe që punon për të gjithë numrat. Pra, kjo është ajo që ne jemi duke shtuar të checksum tonë. Dhe kjo është ajo që është tjetër trajtimin e hap Dy nga algorithm Luhn-së, e cila është vetëm duke shtuar shifrën e nëse kjo nuk ndodh të jetë një nga çdo numra të tjerë. Pra, një herë ne kemi se, kjo është duke e mbajtur gjurmët e dy karaktereve të para të numrin e kartës së kreditit, dy të parat shifra, pasi ne jemi në fund duke shkuar të duan të përdorin atë deri këtu për të verifikuar, të gjithë të drejtë, një e vizave duhet të fillojnë me këtë, dhe një nevojat American Express për të filluar me këtë, dhe kështu me radhë. Së fundi, ne bëjmë kartë krediti Numri i barabartë me kartë krediti Numri i ndarë nga 10. Pse e bëjmë këtë? E pra, ne vetëm trajtuar shifrën e fundit. Duke ndarë me 10 do të zhvendoset i gjithë numri i gjatë. Deri tani, kur ne loop përsëri, ne jemi do të jetë trajtimi dytë të shifrës së fundit. Pastaj kur ne e goditi këtë përsëri, ne jemi duke shkuar për të prerë e dytë të fundit shifra, loop përsëri, dhe për të trajtuar tretë për të kaluar shifër, dhe kështu me radhë, deri sa Numri arrin 0, në të cilën pikë ne pushim nga lak, ndërsa. Ne gjithashtu jemi duke e mbajtur gjurmët e kredisë Gjatësia numrin e kartës, pasi kjo është e rëndësishme për të dalluar nëse është e një numër kartë krediti të vlefshme. Deri tani, pasi ne kemi llogaritur checksum, ne mund të përcaktojë nëse është një kartë e vlefshme. Checksum mod 10 është pjesë i algorithm Luhn-së. Nëse checksum mod 10 kthimit diçka jo-zero, atëherë kjo do të kthehet e vërtetë, në të cilin rast, numri duhet të jenë të pavlefshme. Përndryshe, në qoftë se checksum mod 10 është 0, atëherë ne mund të vazhdojë. Kjo i madh tjetër në qoftë se është duke thënë, nëse i pari dy numra janë të barabartë tek AMEX 1, ku deri këtu, ne shohim se AMEX 1, sipas spekulim, është 34. Dhe ne do të krahasojnë atë në AMEX 2, i cili është 37. Dhe kartë krediti gjatësia numër është barabartë me pritshme American Express Gjatësia kartë, atëherë ne mund të shtypura American Express. Ne do të bëjmë një gjë të ngjashme me Visa. Para dy shifrat duhet të jetë më e madhe se ose e barabarte me 40, ose me pak se ose e barabartë me 49. Ata paraqesin kartat e vlefshme Visa. Dhe gjatësia duhet të jetë e barabartë me Visa Length 1 ose Visa Length 2. Dhe kështu gjatësia duhet të jetë ose 13 ose 16 shifra të gjatë. Dhe së fundi me MasterCard, është e të ngjashme me Visa, se dy të parat shifra duhet të jetë në një të caktuar varg, dhe gjatësia duhet të jetë saktësisht 16 shifra. Pra, nëse ndonjë nga ato raste të mbajë, atëherë në rasti i parë, ne do të shtypura AMEX. Nëse ky rast mban, ne do të shtypura Visa. Nëse ky rast mban, ne do të shtypura MasterCard. Por në qoftë se asnjë nga ata që mbajnë, madje edhe nëse checksum ishte e vlefshme, ne ende të shtypura të pavlefshme. Për shkak se ajo nuk është një nga ato lloje të kartave. Emri im është Rob, dhe unë shpresoj se ju gjetur interesante të kreditit.