1 00:00:00,000 --> 00:00:13,290 2 00:00:13,290 --> 00:00:14,570 >> ROB BOWDEN: Sveiki, es esmu Rob. 3 00:00:14,570 --> 00:00:17,610 Un es ceru, ka jums jāmaksā up kredītu. 4 00:00:17,610 --> 00:00:20,710 Tātad pirmā lieta, kas mums jādara ir pieprasīt kredītkarti 5 00:00:20,710 --> 00:00:22,710 numuru no lietotāja. 6 00:00:22,710 --> 00:00:25,060 Lūk, mēs izmantojam getLongLong. 7 00:00:25,060 --> 00:00:29,070 Jūs varētu izmantot arī getString, bet tādā gadījumā, jūs nepieciešams, lai pārbaudītu 8 00:00:29,070 --> 00:00:32,340 ka nebija ne-ciparu rakstzīmes virknē. 9 00:00:32,340 --> 00:00:34,560 Tāpēc mēs izmantosim getLongLong. 10 00:00:34,560 --> 00:00:38,070 >> Atcerieties, ka jūs nevarat izmantot kaut ko piemēram getInt, jo skaitu būs 11 00:00:38,070 --> 00:00:40,650 pārāk liels, lai ietilptu veselam skaitlim. 12 00:00:40,650 --> 00:00:44,480 Pēc tam, kad mēs esam šo numuru, mēs skatiet šeit to, kamēr cilpa. 13 00:00:44,480 --> 00:00:48,210 Tātad šis kamēr cilpa īsteno Luhn algoritms, kas jums 14 00:00:48,210 --> 00:00:50,980 redzēt PSET spec. 15 00:00:50,980 --> 00:00:53,830 >> Un tas tiešām notiek būt mazliet gudrs. 16 00:00:53,830 --> 00:01:00,800 Tātad PSET spec, ievērosiet, ka Soļi pirmās un otrās ir atsevišķi. 17 00:01:00,800 --> 00:01:05,160 Mēs vispirms iet pāri visam kredītkarti numuru, meklējot katru otro 18 00:01:05,160 --> 00:01:09,775 raksturu, sākot no otrā līdz pēdējā raksturs, un reizinot tos 19 00:01:09,775 --> 00:01:11,750 un pievienojot visus ciparus. 20 00:01:11,750 --> 00:01:16,150 Tad pēc tam mēs pievienot visiem citiem cipariem. 21 00:01:16,150 --> 00:01:20,660 >> Tā vietā, lai darīt tiem divos atsevišķi soļi, mēs ejam, lai apvienotu 22 00:01:20,660 --> 00:01:24,430 tos vienā atkārtojumā vairāk Visa kredītkartes numuru. 23 00:01:24,430 --> 00:01:29,710 Šeit mēs redzam, int cur ciparu vienāds kredītkartes numurs, mod 10. 24 00:01:29,710 --> 00:01:32,050 Kas ir kredītkartes numurs mod 10 dara? 25 00:01:32,050 --> 00:01:35,750 Tas dod mums pēdējo ciparu in vesels skaitlis. 26 00:01:35,750 --> 00:01:39,340 Tātad, atcerieties, ka, ja mēs sadalīta numuru uz augšu par 10, tad atlikušais 27 00:01:39,340 --> 00:01:42,180 varētu būt kāds, kas pēdējais cipars ir. 28 00:01:42,180 --> 00:01:46,560 23 dalīts ar 10, pārējais būs 3. 29 00:01:46,560 --> 00:01:53,760 >> Tātad pēdējais cipars, tagad šeit mēs redzam mēs esam filiāles uz mult ar 2. 30 00:01:53,760 --> 00:01:57,630 Tātad, ko mēs gribam būt, izmantojot mult ar 2, lai ir arī nošķirt 31 00:01:57,630 --> 00:02:02,110 viens no "katru otro numuru no otrais cipars "numurus. 32 00:02:02,110 --> 00:02:08,310 Mult ar 2 gatavojas sākt no kā nepatiesa, jo pēdējais cipars nevajadzētu 33 00:02:08,310 --> 00:02:11,750 var uzskatīt no otrā līdz pēdējai zīmei. 34 00:02:11,750 --> 00:02:16,760 >> Tātad beigās šis cilpas, mēs redz, ka mēs ejam to mainīt 35 00:02:16,760 --> 00:02:18,870 no viltus patiesai. 36 00:02:18,870 --> 00:02:22,520 Par nākamo atkārtojuma par cilpas, tas būs uzskatīt taisnība līdz brīdim, 37 00:02:22,520 --> 00:02:25,090 beigās, kad mēs mainīt to no taisnība nepatiess. 38 00:02:25,090 --> 00:02:28,290 Jo tad mēs būsim uz trešā līdz Pēdējā zīme, kas nav viens no 39 00:02:28,290 --> 00:02:32,210 cipari, ka mums vajadzētu reizināt ar 2. 40 00:02:32,210 --> 00:02:37,410 >> Tātad, ja mēs notikt būt par vienu no tiem cipari, ko mēs vēlamies, lai reizināt ar 2, 41 00:02:37,410 --> 00:02:40,610 mēs redzam, mēs esam pievienojot mūsu kontrolsumma. 42 00:02:40,610 --> 00:02:43,640 Un šeit mēs esam, izmantojot trīskāršo operators vienreiz 43 00:02:43,640 --> 00:02:45,470 atkal mazliet gudrs. 44 00:02:45,470 --> 00:02:50,170 Tātad, ja cur ciparu ir mazāks par 5, tad mēs varam tikai izdarīt ar pašreizējo ciparu reizes 2. 45 00:02:50,170 --> 00:02:50,690 Tas ir vienkārši. 46 00:02:50,690 --> 00:02:52,770 Ja tas ir 1, tad mēs vēlamies, lai pievienotu 2. 47 00:02:52,770 --> 00:02:54,090 Ja tas ir 2, mēs vēlamies, lai pievienotu 4. 48 00:02:54,090 --> 00:02:55,530 Ja tas ir 4, mēs vēlamies, lai pievienotu 8. 49 00:02:55,530 --> 00:02:57,400 >> Tātad, kas ir īpašs par 5? 50 00:02:57,400 --> 00:03:00,290 Nu, 5 reizes 2 ir 10. 51 00:03:00,290 --> 00:03:05,920 Un atcerieties, no PSET spec ka mēs vēlamies, lai pievienotu ciparus 52 00:03:05,920 --> 00:03:09,300 numurs reizes 2, un nevis numurs reizes 2 pati. 53 00:03:09,300 --> 00:03:13,920 Tātad, ja sākotnējais numurs ir 7, 7 reizes 2 ir 14. 54 00:03:13,920 --> 00:03:18,930 Mēs vēlamies, lai pievienotu 1 plus 4 skaitam, kas nav 14. 55 00:03:18,930 --> 00:03:24,050 >> Tātad, šeit, ja numurs ir 5 vai lielāks, tas, ko mēs darām, ir cur ciparu 56 00:03:24,050 --> 00:03:26,470 reizes 2 mīnus 9. 57 00:03:26,470 --> 00:03:29,940 Un, ja jūs domājat par to, ka, 5 reizes 2 ir 10. 58 00:03:29,940 --> 00:03:33,130 Un tāpēc mēs esam pievienojot 1, kas ir 10 mīnus 9. 59 00:03:33,130 --> 00:03:35,490 Un 6 reizes 2 ir 12. 60 00:03:35,490 --> 00:03:38,380 Tāpēc mēs esam pievienojot 3, kas ir 12 mīnus 9. 61 00:03:38,380 --> 00:03:40,250 Un tas darbojas visās numuriem. 62 00:03:40,250 --> 00:03:43,330 >> Tāpēc, ka tas, ko mēs esam pievienojot mūsu kontrolsumma. 63 00:03:43,330 --> 00:03:49,970 Un tas vēl ir, kas ir apstrādes solis Divi no Luhn algoritms, kas ir tikai 64 00:03:49,970 --> 00:03:55,010 pievienojot ciparu, ja tas nenotiek ir viens no katriem citiem cipariem. 65 00:03:55,010 --> 00:04:01,440 Tātad, kad mums ir, ka tas ir tur dziesmu no pirmajiem diviem burtiem 66 00:04:01,440 --> 00:04:05,220 kredītkartes numuru, pirmie divi cipari, jo mēs galu galā iet 67 00:04:05,220 --> 00:04:08,980 vēlas izmantot, ka šeit lejā, lai pārbaudītu, labi, Visa ir jāsāk 68 00:04:08,980 --> 00:04:14,440 ar šo, un American Express vajadzībām sākt ar to, un tā tālāk. 69 00:04:14,440 --> 00:04:16,850 >> Visbeidzot, mēs kredītkarti skaits ir vienāds ar kredītkarti 70 00:04:16,850 --> 00:04:18,730 numurs, dalīts ar 10. 71 00:04:18,730 --> 00:04:19,829 Kāpēc mēs to darām? 72 00:04:19,829 --> 00:04:22,070 Nu, mēs vienkārši apstrādā pēdējo ciparu. 73 00:04:22,070 --> 00:04:24,880 Dalot ar 10 mainīs visu numuru pāri. 74 00:04:24,880 --> 00:04:27,150 Tāpēc tagad, kad mēs cilpa atpakaļ, mēs esam tiks apstrādes 75 00:04:27,150 --> 00:04:28,540 otrā līdz pēdējai zīmei. 76 00:04:28,540 --> 00:04:31,060 Tad, kad mēs hit to vēlreiz, mēs ejam lai nogrieztu otro ilgs 77 00:04:31,060 --> 00:04:35,060 ciparu, cilpa atpakaļ, un rīkoties trešais uz pēdējo ciparu, un tā tālāk, līdz brīdim, kad 78 00:04:35,060 --> 00:04:40,120 skaits sasniedz 0, kurā brīdī mēs izkļūt no kamēr cilpa. 79 00:04:40,120 --> 00:04:43,560 >> Mēs arī sekotu kredīta kartes numurs garums, jo tas ir 80 00:04:43,560 --> 00:04:48,440 svarīgi atšķirt, vai tas ir derīga kredītkartes numuru. 81 00:04:48,440 --> 00:04:53,560 Tāpēc tagad, kad mēs esam aprēķina kontrolsummu, mēs varam noteikt, vai tā 82 00:04:53,560 --> 00:04:55,180 ir derīga karte. 83 00:04:55,180 --> 00:04:58,010 Kontrolsumma mod 10 ir daļa gada Luhn algoritms. 84 00:04:58,010 --> 00:05:03,360 Ja kontrolsumma mod 10 atgriežas kaut nav nulle, tad tas return true, 85 00:05:03,360 --> 00:05:06,650 un šādā gadījumā numurs ir nederīgs. 86 00:05:06,650 --> 00:05:12,590 >> Pretējā gadījumā, ja kontrolsumma mod 10 ir 0, tad mēs varam turpināt. 87 00:05:12,590 --> 00:05:18,360 Šo lielo cits ja saka, ja pirmais divi cipari ir vienāds ar AMEX 1, 88 00:05:18,360 --> 00:05:23,640 kur šeit, mēs redzam, ka AMEX 1, kā vienu spec, ir 34. 89 00:05:23,640 --> 00:05:26,595 Un mēs arī salīdzināt to līdz AMEX 2, kas ir 37. 90 00:05:26,595 --> 00:05:30,360 91 00:05:30,360 --> 00:05:34,210 Un kredītkartes numurs garums vienāds ar paredzamo American Express 92 00:05:34,210 --> 00:05:37,910 card garuma, tad mēs varam drukāt American Express. 93 00:05:37,910 --> 00:05:41,920 >> Mēs darīsim līdzīga lieta ar Visa. 94 00:05:41,920 --> 00:05:51,940 Pirmie divi cipari ir jābūt lielākam par vai vienāds ar 40, vai mazāk 95 00:05:51,940 --> 00:05:54,290 par vai vienāds ar 49. 96 00:05:54,290 --> 00:05:57,180 Tie pārstāv derīga vīza kartes. 97 00:05:57,180 --> 00:06:01,530 Un tās garums ir vienāds ar Visa Garums 1 vai Visa Garums 2. 98 00:06:01,530 --> 00:06:07,320 Un tā garumam jābūt vai nu 13 vai 16 cipariem. 99 00:06:07,320 --> 00:06:12,240 >> Un, visbeidzot, ar MasterCard, tas ir līdzīgi Visa, ka pirmie divi 100 00:06:12,240 --> 00:06:15,340 cipari nepieciešams būt pārliecināti, diapazona, un garums must 101 00:06:15,340 --> 00:06:19,440 jābūt tieši 16 cipariem. 102 00:06:19,440 --> 00:06:24,390 Tātad, ja kāds no šiem gadījumiem turēt, tad Pirmajā gadījumā mēs drukāt AMEX. 103 00:06:24,390 --> 00:06:26,310 Ja šo lietu tur, mēs drukāt vīzu. 104 00:06:26,310 --> 00:06:28,400 Ja šo lietu tur, mēs drukāt MasterCard. 105 00:06:28,400 --> 00:06:32,170 >> Bet, ja neviens no tiem tur, pat ja kontrolsumma bija spēkā, 106 00:06:32,170 --> 00:06:33,900 mēs joprojām drukāt nederīgs. 107 00:06:33,900 --> 00:06:37,050 Tāpēc, ka tas nav viens no šie karšu veidiem. 108 00:06:37,050 --> 00:06:40,030 Mans vārds ir Rob, un es ceru, ka jūs konstatēts kredītu interesanti. 109 00:06:40,030 --> 00:06:46,272