1 00:00:00,000 --> 00:00:13,290 2 00:00:13,290 --> 00:00:14,570 >> ROB BOWDEN: Здравейте, аз съм на Роб. 3 00:00:14,570 --> 00:00:17,610 И се надявам, че ще бъдете таксувани за кредит. 4 00:00:17,610 --> 00:00:20,710 Така че първото нещо, което трябва да направите, се поиска от кредитната карта 5 00:00:20,710 --> 00:00:22,710 брой от потребителя. 6 00:00:22,710 --> 00:00:25,060 Ето, ние използваме getLongLong. 7 00:00:25,060 --> 00:00:29,070 Вие също може да са използвали getString, но в този случай, ще трябва да се провери 8 00:00:29,070 --> 00:00:32,340 че не е имало Нечисловите символи в низа. 9 00:00:32,340 --> 00:00:34,560 Така че ние ще използваме getLongLong. 10 00:00:34,560 --> 00:00:38,070 >> Не забравяйте, че не можете да използвате нещо като getInt, тъй като броят ще бъде 11 00:00:38,070 --> 00:00:40,650 прекалено голям, за да се побере в едно цяло число. 12 00:00:40,650 --> 00:00:44,480 След като имаме този номер, ние вижте тук тази линия, докато. 13 00:00:44,480 --> 00:00:48,210 Така че тази линия, докато изпълнява Алгоритъм Luhn, че сте 14 00:00:48,210 --> 00:00:50,980 виж в PSET спекулация. 15 00:00:50,980 --> 00:00:53,830 >> И това е всъщност става да бъде малко по-умен. 16 00:00:53,830 --> 00:01:00,800 Така че в PSET спекулация, забележите, че Стъпки едно и две отделни. 17 00:01:00,800 --> 00:01:05,160 Ние първо да премине през целия кредитната карта номер, търси за всяка друга 18 00:01:05,160 --> 00:01:09,775 характер, започвайки от втората до последна характер, и да ги умножи 19 00:01:09,775 --> 00:01:11,750 и добавяне на всички цифри. 20 00:01:11,750 --> 00:01:16,150 Тогава, след това, ние добавяме в всички други цифри. 21 00:01:16,150 --> 00:01:20,660 >> Така че вместо да правиш тези в две отделни стъпки, отиваме да се съчетаят 22 00:01:20,660 --> 00:01:24,430 ги в една итерация над река Целият номер на кредитна карта. 23 00:01:24,430 --> 00:01:29,710 Ето, ние виждаме, вътр тек цифрени равни номер на кредитна карта, мод 10. 24 00:01:29,710 --> 00:01:32,050 Какво е номер на кредитна карта Министерството на отбраната 10 правиш? 25 00:01:32,050 --> 00:01:35,750 Това ни дава последната цифра в цяло число. 26 00:01:35,750 --> 00:01:39,340 Така че не забравяйте, че ако сме разделили наброяват от 10, а след това останалата 27 00:01:39,340 --> 00:01:42,180 Би било каквото и да е последната цифра. 28 00:01:42,180 --> 00:01:46,560 23, разделена на 10, на остатък ще бъде 3. 29 00:01:46,560 --> 00:01:53,760 >> Така че последната цифра, сега тук, ще видим, ние сме разклоняване на MULT по 2. 30 00:01:53,760 --> 00:01:57,630 Така че това, което ние ще се използва MULT с 2 за се прави разлика между 31 00:01:57,630 --> 00:02:02,110 един от "всеки други числа от втората цифра "номерата. 32 00:02:02,110 --> 00:02:08,310 Mult от 2 ще започват като невярно, тъй като последната цифра не трябва да 33 00:02:08,310 --> 00:02:11,750 се счита от втори до последния цифра. 34 00:02:11,750 --> 00:02:16,760 >> Така след това в края на тази линия за, ние се види, че ние ще променим това 35 00:02:16,760 --> 00:02:18,870 от фалшиво да е вярно. 36 00:02:18,870 --> 00:02:22,520 На следващата итерация на за линия, това ще се счита за истински до 37 00:02:22,520 --> 00:02:25,090 края на краищата, когато сменим то от верни на невярна. 38 00:02:25,090 --> 00:02:28,290 Защото тогава ще бъде на трето да последна цифра, която не е една от 39 00:02:28,290 --> 00:02:32,210 цифри, които ние трябва да се умножават по 2. 40 00:02:32,210 --> 00:02:37,410 >> Така че, ако ние се случи да бъде на един от тези, цифри, които искаме да се умножава по две, 41 00:02:37,410 --> 00:02:40,610 ние виждаме, ние добавяме към нашата контролна сума. 42 00:02:40,610 --> 00:02:43,640 И тук, ние използваме на третичния оператор да веднъж 43 00:02:43,640 --> 00:02:45,470 отново да бъде малко умен. 44 00:02:45,470 --> 00:02:50,170 Така че, ако тек цифра е по-малко от 5, а след това ние може просто да направите тек цифрени пъти 2. 45 00:02:50,170 --> 00:02:50,690 Това е проста. 46 00:02:50,690 --> 00:02:52,770 Ако е един, а след това искаме да добавим 2. 47 00:02:52,770 --> 00:02:54,090 Ако това е 2, искаме да добавим 4. 48 00:02:54,090 --> 00:02:55,530 Ако е 4, искаме да добавим 8. 49 00:02:55,530 --> 00:02:57,400 >> И така, какво е специалното 5? 50 00:02:57,400 --> 00:03:00,290 Е, 5 пъти 2 е 10. 51 00:03:00,290 --> 00:03:05,920 И не забравяйте от PSET спекулация, че искаме да добавим цифрите на 52 00:03:05,920 --> 00:03:09,300 брой пъти 2, а не на брой пъти се 2. 53 00:03:09,300 --> 00:03:13,920 Така че, ако номера на оригиналния е 7, 7 пъти 2 е 14. 54 00:03:13,920 --> 00:03:18,930 Искаме да добавите 1 плюс 4 броя, не 14. 55 00:03:18,930 --> 00:03:24,050 >> Така че тук, ако броят им е 5 или по-голяма, това, което правим е тек-цифрен 56 00:03:24,050 --> 00:03:26,470 2 пъти минус 9. 57 00:03:26,470 --> 00:03:29,940 И ако мислите, че за това, 5 пъти 2 е 10. 58 00:03:29,940 --> 00:03:33,130 И така, ние сме добавяне на 1, което е 10 минус 9. 59 00:03:33,130 --> 00:03:35,490 И шест пъти 2 е 12. 60 00:03:35,490 --> 00:03:38,380 Така че ние сме добавяне на 3, които е 12 минус 9. 61 00:03:38,380 --> 00:03:40,250 И това работи за всички номера. 62 00:03:40,250 --> 00:03:43,330 >> Така че това е, което ние добавяме в нашия контролна сума. 63 00:03:43,330 --> 00:03:49,970 И това друго е това, което е работа Step Две от алгоритъм Luhn, която е само 64 00:03:49,970 --> 00:03:55,010 добавяне на цифра ако това не се случи да бъде един от всеки други цифри. 65 00:03:55,010 --> 00:04:01,440 Така че след като ние имаме, че това е поддържането следите на първите два знака на 66 00:04:01,440 --> 00:04:05,220 номера на кредитната карта, като първите две цифри, тъй като ние сме в крайна сметка ще 67 00:04:05,220 --> 00:04:08,980 да искате да използвате, че тук долу, за да се провери, Всичко е наред, а Visa трябва да започне 68 00:04:08,980 --> 00:04:14,440 с това, както и American Express нужди да се започне с това, и така нататък. 69 00:04:14,440 --> 00:04:16,850 >> И накрая, ние правим кредитна карта брой е равен на кредитна карта 70 00:04:16,850 --> 00:04:18,730 брой разделен от 10. 71 00:04:18,730 --> 00:04:19,829 Защо правим това? 72 00:04:19,829 --> 00:04:22,070 Е, ние просто се справи с последната цифра. 73 00:04:22,070 --> 00:04:24,880 Разделяне с 10 ще се измести целия номер свърши. 74 00:04:24,880 --> 00:04:27,150 Така че сега, когато ние контур обратно, ние сме ще се занимава със 75 00:04:27,150 --> 00:04:28,540 втори до последния цифра. 76 00:04:28,540 --> 00:04:31,060 Тогава, когато ние удари отново, ние ще за да отсече вторият да продължи 77 00:04:31,060 --> 00:04:35,060 цифра, линия назад, и да се справят с трети до последната цифра, и така нататък, докато 78 00:04:35,060 --> 00:04:40,120 брой достига до 0, в който момент ние се измъкне от примката време. 79 00:04:40,120 --> 00:04:43,560 >> Ние сме също така следене на кредита Дължина на номер на карта, тъй като това е 80 00:04:43,560 --> 00:04:48,440 важно да се прави разлика дали това е Номер на валидна кредитна карта. 81 00:04:48,440 --> 00:04:53,560 Така че сега, след като сме изчислили контролна сума, ние можем да определим дали тя 82 00:04:53,560 --> 00:04:55,180 е валидна карта. 83 00:04:55,180 --> 00:04:58,010 Министерството на отбраната контролна 10 е част на алгоритъм е Luhn. 84 00:04:58,010 --> 00:05:03,360 Ако контролна мод 10 възвръщаемост нещо не е нула, а след това ще се върне вярно, 85 00:05:03,360 --> 00:05:06,650 в този случай, броят трябва да е невалиден. 86 00:05:06,650 --> 00:05:12,590 >> В противен случай, ако контролна мод 10 е 0, тогава можем да продължим. 87 00:05:12,590 --> 00:05:18,360 Този голям иначе, ако се казва, ако първият две цифри са равни на AMEX 1, 88 00:05:18,360 --> 00:05:23,640 където до тук, ние виждаме, че AMEX 1, според спецификациите, е 34. 89 00:05:23,640 --> 00:05:26,595 И ние също така ще я сравни да AMEX 2, което е 37. 90 00:05:26,595 --> 00:05:30,360 91 00:05:30,360 --> 00:05:34,210 И дължината номер на кредитна карта е равна на очакваната American Express 92 00:05:34,210 --> 00:05:37,910 дължина картон, тогава можем отпечатате American Express. 93 00:05:37,910 --> 00:05:41,920 >> Ние ще направим подобно нещо с Visa. 94 00:05:41,920 --> 00:05:51,940 Първите две цифри трябва да бъде по-голяма от или равна на 40, или по-малко 95 00:05:51,940 --> 00:05:54,290 от или равен на 49. 96 00:05:54,290 --> 00:05:57,180 Тези, които представляват валидна виза карти. 97 00:05:57,180 --> 00:06:01,530 И дължината трябва да бъде равна на Visa Дължина една или Visa Дължина 2. 98 00:06:01,530 --> 00:06:07,320 И така, дължината трябва да бъде или С дължина 13 или 16 цифри. 99 00:06:07,320 --> 00:06:12,240 >> И накрая с MasterCard, това е подобна на Visa, че първите две 100 00:06:12,240 --> 00:06:15,340 цифри трябва да бъде в определен обхват и продължителност на мъстта 101 00:06:15,340 --> 00:06:19,440 да бъде точно 16 цифри. 102 00:06:19,440 --> 00:06:24,390 Така че, ако някой от тези случаи, задръжте, след това в първия случай, ние ще отпечатате AMEX. 103 00:06:24,390 --> 00:06:26,310 Ако този случай притежава, ще отпечатате Visa. 104 00:06:26,310 --> 00:06:28,400 Ако този случай притежава, ние ще отпечатате MasterCard. 105 00:06:28,400 --> 00:06:32,170 >> Но ако никой от тези, които държат, дори ако проверката на сумата е била валидна, 106 00:06:32,170 --> 00:06:33,900 ние все още отпечатате невалиден. 107 00:06:33,900 --> 00:06:37,050 Тъй като това не е един от тези видове карти. 108 00:06:37,050 --> 00:06:40,030 Моето име е Роб, и аз се надявам Намерени кредитна интересно. 109 00:06:40,030 --> 00:06:46,272