Rob Bowden: Hi, Mən Rob deyiləm. Və mən ittiham etdiyiniz ümid kredit üçün. Biz nə etmək lazımdır ilk şey kredit kartı tələb olunur istifadəçi sayı. Burada, biz GetLongLong istifadə edirik. Siz həmçinin GetString istifadə, lakin ola bilər Bu halda, siz yoxlamaq lazımdır istədiyiniz heç bir qeyri-rəqəmli olduğunu simli simvol. Belə ki, biz GetLongLong istifadə edəcəyik. Əgər bir şey istifadə edə bilər ki, saxla GetInt kimi, sayı ildən olacaq bir tam uyğun çox böyük. Biz ki sayı var, biz bu isə loop burada bax. Belə ki, bu isə loop həyata keçirir Luhn alqoritm siz pset spec görmək. Və həqiqətən gedir bir az ağıllı olmaq. Belə ki, pset spec, qeyd edir ki, Bir və iki ayrı addımlar. Biz ilk bütün kredit kartı üzərində getmək sayı, hər bir digər axtarır xarakter ikinci başlayaraq Son xarakter və onlara vurulması və bütün rəqəm əlavə. Sonra sonra, biz əlavə Digər rəqəm bütün. Belə ki, əvəzinə iki o bunu ayrı-ayrı addımlar, biz birləşdirmək olacaq Onlara artıq bir iteration daxil bütün kredit kartı nömrəsi. Burada, biz int cur rəqəmli bərabərdir bax kredit kartı nömrəsi, mod 10. Kredit kartı nömrəsi nədir mod 10 edir? Bu, bizim son rəqəmli verilməsi oldu bütün sayı. Belə ki, unutmayın ki, biz bölünür əgər 10 up sayı, daha sonra qalan ki, ötən rəqəmli nə olardı. 23, 10 bölünür qalan 3 olacaq. Belə ki, son rəqəmli, indi burada görürük biz 2 Mult haqqında budaq edirik. Belə ki, nə biz Mult istifadə etmək olacaq 2 üçün arasında fərqlənir "hər digər nömrələri birini İkinci rəqəmli "nömrələri. 2 Mult kimi həyata başlamaq niyyətindədir yalan, son rəqəmli yana olmamalıyıq Bu qəbul edilə son rəqəmli ikinci. Belə ki, loop üçün bu sonunda, biz biz bu dəyişiklik olacaq ki, bax doğru yalan olan. Üçün loop növbəti iteration, Bu qədər doğru hesab olacaq biz dəyişdirmək zaman sonunda, doğru səhv etmək. Sonra biz üçüncü olacaq, çünki biri deyil Son rəqəmli, biz 2 çoxaltmaq lazımdır ki, rəqəm. Biz o biri olmaq üçün nə əgər biz 2 çoxaltmaq istəyirəm ki rəqəm, biz checksum əlavə etdiyiniz baxın. Və burada, biz istifadə etdiyiniz ternary operator bir yenə bir az ağıllı ola bilər. Belə ki cur rəqəmli sonra, az 5 əgər biz yalnız cur rəqəmli dəfə 2 edə bilərsiniz. Bu sadə. Bu 1, onda biz 2 əlavə etmək istəyirəm. 2, biz 4 əlavə etmək istəyirəm. 4, biz 8 əlavə etmək istəyirəm. Belə ki, nə 5 haqqında xüsusi var? Yaxşı, 5 dəfə 2 10. Və pset spec olan xatırlayıram ki, biz bu rəqəm əlavə etmək istədiyiniz sayı dəfə 2 deyil, sayı dəfə özünü 2.. Belə ki, əgər orijinal sayı 7, 7 dəfə 2 14 edir. Biz 1 plus 4 əlavə etmək istəyirəm sayı, deyil 14. Belə ki, burada sayı 5 və ya daha çox olduqda, biz nə edirik cur rəqəmli edir dəfə 2 minus 9. Və bu barədə düşünüyorsanız, 5 dəfə 2 10. Və biz, 1 əlavə edirik 10 minus 9 edir. Və 6 dəfə 2 12. Belə ki, biz, 3 əlavə etdiyiniz 12 minus 9. Və bütün nömrələri üçün çalışır. Belə ki, biz əlavə edirik nə var Bizim checksum üçün. Bu başqa Addım user nə Yalnız olan Luhn alqoritmi, iki bu baş vermir əgər rəqəmli əlavə hər digər rəqəm bir olmaq. Belə ki, bir dəfə biz bu tutar ki, var İlk iki simvol track kredit kartı nömrəsi, ilk iki biz nəhayət olacaq ildən rəqəm, yoxlamaq üçün burada aşağı istifadə etmək istədiyiniz, bütün sağ, bir Visa başlamaq üçün var bu və American Express ehtiyacları Bu ilə başlamaq, və s. üçün Nəhayət, biz kredit kart sayı kredit kartı bərabərdir sayı 10 bölünür. Niyə biz bunu edirsiniz? Yaxşı, biz yalnız son rəqəmli ele. 10 Suayrıcı yönəldəcəyik bütün say. Geri zaman biz loop Beləliklə, biz istəyirik idarə edilə gedir son rəqəmli ikinci. Yenə bu hit zaman, biz gedirik davam ikinci kəsmək üçün rəqəmli, loop geri və idarə üçüncü qədər belə rəqəmli davam, və üçün sayı nöqtədə, 0 çatır biz isə loop çıxmaq. Biz həmçinin kredit track saxlanılması edirik kartı nömrəsi uzunluğu ki, var-ci ildən istər ayırmaq vacibdir cari kredit kartı nömrəsi. Belə ki, indi, bir dəfə biz hesablanmış etdik checksum, biz müəyyən edə bilər olub etibarlı kartıdır. Bu checksum mod 10 hissəsidir Luhn nin alqoritm. Checksum mod 10 returns bir şey varsa qeyri-sıfır, bu, doğru qayıdacaq bu halda, sayı etibarsız olmalıdır. Əks halda, əgər checksum mod 10 0, sonra biz davam edə bilərsiniz. Bu, başqa böyük deyərək əgər ilk əgər iki rəqəm AMEX 1 bərabərdir Ü qədər burada, biz görürük ki, AMEX 1, spec uyğun olaraq, 34. Və biz də müqayisə edəcəyik 37 olan AMEX 2,. Və kredit kartı nömrəsi uzunluğu gözlənilən American Express bərabər kart uzunluğu, sonra biz American Express çap. Biz Visa ilə bənzər bir şey edəcəyik. İlk iki rəqəm olan böyük olmaq lazımdır və ya 40 bərabər və ya az az və ya 49 bərabər. Həmin etibarlı Visa kartları təmsil edir. Və uzunluğu bərabər olmalıdır Visa Length 1 və ya Visa Length 2. Və uzunluğu ya olmalıdır 13 və ya 16 rəqəm uzun. Və nəhayət MasterCard ilə, bu Visa oxşar ki, ilk iki rəqəm müəyyən olmaq lazımdır üçündür, və uzunluğu olmalıdır tam 16 rəqəm ola bilər. Belə ki, həmin hallarda hər hansı bir, sonra keçirilməsi əgər birinci halda, biz AMEX çap edəcəyik. Bu halda keçirir, biz Visa çap edəcəyik. Bu halda malikdirsə, biz will MasterCard çap. Amma o, heç saxlamaq əgər, hətta Bu checksum qüvvədə idi, əgər biz hələ etibarsız çap. O biri deyil, çünki kartları bu növ. My name Rob və mən ümid edirəm aşkar kredit maraqlı.