>> ROB BOWDEN: Здравейте, аз съм на Роб.
И се надявам, че ще бъдете таксувани за кредит.
Така че първото нещо, което трябва да направите, се поиска от кредитната карта
брой от потребителя.
Ето, ние използваме getLongLong.
Вие също може да са използвали getString, но в този случай, ще трябва да се провери
че не е имало Нечисловите символи в низа.
Така че ние ще използваме getLongLong.
>> Не забравяйте, че не можете да използвате нещо като getInt, тъй като броят ще бъде
прекалено голям, за да се побере в едно цяло число.
След като имаме този номер, ние вижте тук тази линия, докато.
Така че тази линия, докато изпълнява Алгоритъм Luhn, че сте
виж в PSET спекулация.
>> И това е всъщност става да бъде малко по-умен.
Така че в PSET спекулация, забележите, че Стъпки едно и две отделни.
Ние първо да премине през целия кредитната карта номер, търси за всяка друга
характер, започвайки от втората до последна характер, и да ги умножи
и добавяне на всички цифри.
Тогава, след това, ние добавяме в всички други цифри.
>> Така че вместо да правиш тези в две отделни стъпки, отиваме да се съчетаят
ги в една итерация над река Целият номер на кредитна карта.
Ето, ние виждаме, вътр тек цифрени равни номер на кредитна карта, мод 10.
Какво е номер на кредитна карта Министерството на отбраната 10 правиш?
Това ни дава последната цифра в цяло число.
Така че не забравяйте, че ако сме разделили наброяват от 10, а след това останалата
Би било каквото и да е последната цифра.
23, разделена на 10, на остатък ще бъде 3.
>> Така че последната цифра, сега тук, ще видим, ние сме разклоняване на MULT по 2.
Така че това, което ние ще се използва MULT с 2 за се прави разлика между
един от "всеки други числа от втората цифра "номерата.
Mult от 2 ще започват като невярно, тъй като последната цифра не трябва да
се счита от втори до последния цифра.
>> Така след това в края на тази линия за, ние се види, че ние ще променим това
от фалшиво да е вярно.
На следващата итерация на за линия, това ще се счита за истински до
края на краищата, когато сменим то от верни на невярна.
Защото тогава ще бъде на трето да последна цифра, която не е една от
цифри, които ние трябва да се умножават по 2.
>> Така че, ако ние се случи да бъде на един от тези, цифри, които искаме да се умножава по две,
ние виждаме, ние добавяме към нашата контролна сума.
И тук, ние използваме на третичния оператор да веднъж
отново да бъде малко умен.
Така че, ако тек цифра е по-малко от 5, а след това ние може просто да направите тек цифрени пъти 2.
Това е проста.
Ако е един, а след това искаме да добавим 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.
И шест пъти 2 е 12.
Така че ние сме добавяне на 3, които е 12 минус 9.
И това работи за всички номера.
>> Така че това е, което ние добавяме в нашия контролна сума.
И това друго е това, което е работа Step Две от алгоритъм Luhn, която е само
добавяне на цифра ако това не се случи да бъде един от всеки други цифри.
Така че след като ние имаме, че това е поддържането следите на първите два знака на
номера на кредитната карта, като първите две цифри, тъй като ние сме в крайна сметка ще
да искате да използвате, че тук долу, за да се провери, Всичко е наред, а Visa трябва да започне
с това, както и 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.
Тези, които представляват валидна виза карти.
И дължината трябва да бъде равна на Visa Дължина една или Visa Дължина 2.
И така, дължината трябва да бъде или С дължина 13 или 16 цифри.
>> И накрая с MasterCard, това е подобна на Visa, че първите две
цифри трябва да бъде в определен обхват и продължителност на мъстта
да бъде точно 16 цифри.
Така че, ако някой от тези случаи, задръжте, след това в първия случай, ние ще отпечатате AMEX.
Ако този случай притежава, ще отпечатате Visa.
Ако този случай притежава, ние ще отпечатате MasterCard.
>> Но ако никой от тези, които държат, дори ако проверката на сумата е била валидна,
ние все още отпечатате невалиден.
Тъй като това не е един от тези видове карти.
Моето име е Роб, и аз се надявам Намерени кредитна интересно.