>> Роб BOWDEN: Здраво, јас сум Роб.
И се надевам дека сте обвинети за кредит.
Значи прво нешто што треба да направите е да побара од кредитна картичка
број од корисникот.
Тука, ние сме со користење getLongLong.
Вие би можеле да имаат исто така се користи getString, но во тој случај, ќе треба да се провери
дека нема не-нумерички карактери во стринг.
Па ние ќе го користите getLongLong.
>> Се сеќавам дека не можете да користите нешто како getInt, бидејќи бројот ќе биде
премногу големи за да се вклопат во цел број.
Еднаш имаме тој број, ние види тука ова додека јамка.
Па ова додека јамка е спроведување Алгоритам Luhn дека сте
види во pset спецификации.
>> И тоа е, всушност, ќе да се биде малку паметен.
Значи во pset спецификации, да се забележи дека Чекори еден и два се одвоени.
Ние прво одиме во текот на целата кредитна картичка број, во потрага по секој друг
карактер почнувајќи од вториот последниот карактер, и да ги множење
и додавање на сите цифри.
Потоа после тоа, ние го додадете во сите други бројки.
>> Така, наместо за правење на оние кои се во две одделни чекори, ние ќе треба да се комбинираат
нив во еден повторување во текот на целиот број на кредитна картичка.
Тука, ние гледаме int мом цифрен еднаквите број на кредитна картичка, современи 10.
Што е бројот на кредитната картичка МО 10 правиш?
Тоа е ни даваат последната цифра во цел број.
Па не заборавајте дека ако ние поделени на број до 10, а потоа остатокот
ќе биде она што последната цифра е.
23 поделено со 10, Остатокот ќе биде 3.
>> Па последната цифра, сега тука, ние гледаме ние сме разгранување на mult со 2.
Значи она што ние ќе биде со користење на mult од 2 за е разлика меѓу
еден од "секој друг броеви од на втората цифра "броеви.
Mult од 2 ќе започне како лажни, бидејќи на последната цифра не треба
се смета од за вториот последната цифра.
>> Па потоа на крајот на овој за телефонска линија, ние видите дека ние ќе треба да го промените ова
од лажни е точно.
На следниот повторување на за телефонска линија, тоа се случува да се смета вистински до
На крајот, кога ги менуваме тоа од вистински да се лажни.
Затоа што тогаш ќе бидеме на третиот за да се последната цифра, што не е еден од
бројки кои треба да се помножи со 2.
>> Па ако се случи да биде на една од оние цифри кои сакаме да ги множи со 2,
можеме да видиме ние сме додавање на нашите проверка на сума.
И тука, ние сме со користење на троичен оператор уште
повторно да биде малку паметен.
Значи, ако мом бројка е помала од 5, тогаш ние само може да се направи мом цифрен пати 2.
Тоа е едноставно.
Ако тоа е 1, тогаш ќе сакате да додадете 2.
Ако тоа е 2, сакаме да додадете 4.
Ако тоа е 4, сакаме да додадете 8.
>> Значи она што е посебно за 5?
Добро, 5 пати 2 е 10.
И се сеќавам од pset спецификации кои ние сакаме да го додадете цифри од
број пати 2, а не на број пати 2 себе.
Па ако оригиналниот број е 7, 7 пати 2 е 14.
Ние сакаме да додадете 1 плус 4 бројот, не 14.
>> Па еве, ако бројот е 5 или поголем, она што го правиме е мом цифрен
пати 2 минус 9.
И ако мислите дека за тоа, 5 пати 2 е 10.
И така ние сме додавање на 1, кој е 10 минус 9.
И 6 пати 2 е 12.
Па ние сме додавање на 3, кој е 12 минус 9.
И дека работи за сите броеви.
>> Значи тоа е она што ние сме додавање на на нашата проверка на сума.
И ова друго е она што се ракување Чекор Двајца од алгоритам Luhn, која е само
додавање цифра ако тоа не се случи да биде еден од секоја друга цифри.
Па еднаш имаме тоа, ова е водење на ги пратите на првите две букви од
број на кредитна картичка, во првите два цифри, бидејќи ние сме на крајот ќе
да сакате да го користите дека овде за да провери, во ред, виза мора да започне
со ова, и American Express потреби да се започне со тоа, и така натаму.
>> Конечно, тоа го правиме за кредитна картичка број еднаква на кредитна картичка
број поделено со 10.
Зошто го правиме тоа?
Па, ние само се ракува на последната цифра.
Делење со 10 ќе се префрли вкупниот број завршени.
Па сега кога ќе јамка назад, ние сме ќе треба да се справува со
за вториот последната цифра.
Тогаш кога ќе притиснеме ова, повторно, ние ќе да им ја исклучи вториот да трае
цифра, јамка назад, и да се справи со трети да трае цифра, и така натаму, се додека
бројка достигнува 0, на која точка ние се пробие на додека јамка.
>> Ние сме, исто така, следење на кредитната картичка должина, бидејќи тоа е
важно да се направи разлика дали тоа е голем број валидна кредитна картичка.
Па сега, еднаш сме пресметува проверката, ние може да се утврди дали
е валидна картичка.
Проверката современи 10 е дел на алгоритам Luhn е.
Ако проверката современи 10 се враќа нешто не-нула, тогаш ова ќе се вратат точно,
во кој случај, бројот мора да биде валиден.
>> Инаку, ако проверката современи 10 е 0, тогаш ние може да продолжи.
Овој голем друго, ако е велејќи дека, ако првиот две цифри се еднакви AMEX 1,
каде тука, можеме да видиме дека AMEX 1, како за на спецификации, е 34.
И ние исто така ќе го споредам да AMEX 2, кое е 37.
И број на кредитна картичка должина е еднаква на очекуваниот American Express
картичка должина, тогаш можеме да печати American Express.
>> Ние ќе направиме нешто слично со Visa.
Првите две цифри треба да биде поголема од или еднакво на 40 или помалку
од или еднакво на 49.
Оние претставуваат валидна виза картички.
А должината треба да биде еднаква на Виза Должина 1 или Должина Виза 2.
И така должина мора да биде или 13 или 16 цифри.
>> И конечно со MasterCard, тоа е слични на Виза, дека првите две
цифри треба да биде во одреден спектар, и должина мора да
биде точно 16 цифри.
Значи, ако било кој од овие случаи се одржи, тогаш во првиот случај, ние ќе се печати AMEX.
Ако овој случај има, ќе се печати виза.
Ако овој случај има, ние ќе печати Мастеркард.
>> Но, ако ниту еден од тие одржи, дури и ако проверката е валиден,
ние се уште се печати неважечки.
Бидејќи тоа не е една од овие видови на картички.
Моето име е Роб, и јас ќе се надевам најде кредитна интересно.