1 00:00:00,000 --> 00:00:13,290 2 00:00:13,290 --> 00:00:14,570 >> ROB BOWDEN: Hei, olen Rob. 3 00:00:14,570 --> 00:00:17,610 Ja toivon veloitettavassa varten luottoa. 4 00:00:17,610 --> 00:00:20,710 Joten ensimmäinen asia, joka meidän täytyy tehdä on pyytää luottokortin 5 00:00:20,710 --> 00:00:22,710 numero käyttäjältä. 6 00:00:22,710 --> 00:00:25,060 Täällä käytämme getLongLong. 7 00:00:25,060 --> 00:00:29,070 Olisit voinut myös käyttää getString, mutta Siinä tapauksessa sinun täytyy tarkistaa 8 00:00:29,070 --> 00:00:32,340 että ei ollut ei-numeerisia merkkejä merkkijonon. 9 00:00:32,340 --> 00:00:34,560 Joten käytämme getLongLong. 10 00:00:34,560 --> 00:00:38,070 >> Muista, että et voi käyttää jotain kuten getInt, koska numero on 11 00:00:38,070 --> 00:00:40,650 liian suuri mahtumaan kokonaisluku. 12 00:00:40,650 --> 00:00:44,480 Kun meillä on tuo numero, me läsnäolosta täällä kun silmukka. 13 00:00:44,480 --> 00:00:48,210 Joten tämä while-silmukka toteuttaa Luhn algoritmi, että olet 14 00:00:48,210 --> 00:00:50,980 nähdä PSET spec. 15 00:00:50,980 --> 00:00:53,830 >> Ja se todella tapahtuu olla hieman ovela. 16 00:00:53,830 --> 00:01:00,800 Joten PSET spec, huomaa, että Vaiheet yksi ja kaksi ovat erillisiä. 17 00:01:00,800 --> 00:01:05,160 Me ensin mennä koko luottokortin numero, etsivät joka toinen 18 00:01:05,160 --> 00:01:09,775 merkki alkaen toisesta Viimeisen merkin ja kertomalla ne 19 00:01:09,775 --> 00:01:11,750 ja lisäämällä kaikki numerot. 20 00:01:11,750 --> 00:01:16,150 Sitten sen jälkeen, lisäämme vuonna kaikki muut numerot. 21 00:01:16,150 --> 00:01:20,660 >> Joten sen sijaan tehdä näiden kahden erillisiä vaiheita, aiomme yhdistää 22 00:01:20,660 --> 00:01:24,430 ne yhdeksi iteraation yli koko luottokortin numeron. 23 00:01:24,430 --> 00:01:29,710 Täällä näemme int nyk. numeroinen tasavertaisina luottokortin numero, mod 10. 24 00:01:29,710 --> 00:01:32,050 Mikä on luottokortin numero mod 10 tekee? 25 00:01:32,050 --> 00:01:35,750 Se antaa meille viimeisen numeron koko numero. 26 00:01:35,750 --> 00:01:39,340 Joten muistakaa, että jos jaoimme numero ylös 10, sitten loput 27 00:01:39,340 --> 00:01:42,180 olisi mitä se viimeinen numero on. 28 00:01:42,180 --> 00:01:46,560 23 jaettuna 10, Loppuosa 3. 29 00:01:46,560 --> 00:01:53,760 >> Joten viimeinen numero, nyt täällä, näemme olemme haarautumaa mult 2. 30 00:01:53,760 --> 00:01:57,630 Joten mitä aiomme käyttää mult 2 varten on erotella 31 00:01:57,630 --> 00:02:02,110 yksi "joka toinen numerot toinen numero "numeroita. 32 00:02:02,110 --> 00:02:08,310 Mult 2 aikoo aloittaa kuin väärä, koska viimeinen numero ei pitäisi 33 00:02:08,310 --> 00:02:11,750 ottaa huomioon jo toiseksi viimeisen numeron. 34 00:02:11,750 --> 00:02:16,760 >> Joten sitten lopussa tämän silmukan, me nähdä, että aiomme muuttaa tätä 35 00:02:16,760 --> 00:02:18,870 alkaen false totta. 36 00:02:18,870 --> 00:02:22,520 Seuraavalla iterointia silmukan, se tulee pitää totena, kunnes 37 00:02:22,520 --> 00:02:25,090 lopussa, kun muutamme se totta vääriä. 38 00:02:25,090 --> 00:02:28,290 Koska silloin me olla kolmas viimeinen numero, joka ei ole yksi 39 00:02:28,290 --> 00:02:32,210 numeroa että meidän pitäisi moninkertaistaa 2. 40 00:02:32,210 --> 00:02:37,410 >> Joten jos satumme olemaan yksi niistä numeroa, jotka haluamme kerrotaan 2, 41 00:02:37,410 --> 00:02:40,610 näemme lisäämme meidän tarkiste. 42 00:02:40,610 --> 00:02:43,640 Ja tässä, käytämme ternäärinen toimijaa kerran 43 00:02:43,640 --> 00:02:45,470 jälleen olla hieman ovela. 44 00:02:45,470 --> 00:02:50,170 Joten jos nyk. luku on alle 5, niin voimme vain tehdä nyk. numeroinen kertaa 2. 45 00:02:50,170 --> 00:02:50,690 Se on yksinkertainen. 46 00:02:50,690 --> 00:02:52,770 Jos se on 1, niin haluamme lisätä 2. 47 00:02:52,770 --> 00:02:54,090 Jos se on 2, haluamme lisätä 4. 48 00:02:54,090 --> 00:02:55,530 Jos se on 4, haluamme lisätä 8. 49 00:02:55,530 --> 00:02:57,400 >> Joten mitä erikoista noin 5? 50 00:02:57,400 --> 00:03:00,290 No, 5 kertaa 2 on 10. 51 00:03:00,290 --> 00:03:05,920 Ja muistan PSET spec että haluamme lisätä numeroa 52 00:03:05,920 --> 00:03:09,300 numero kertaa 2, eikä numero kertaa 2 itse. 53 00:03:09,300 --> 00:03:13,920 Joten jos alkuperäinen luku on 7, 7 kertaa 2 on 14. 54 00:03:13,920 --> 00:03:18,930 Haluamme lisätä 1 plus 4 lukumäärään, ei 14. 55 00:03:18,930 --> 00:03:24,050 >> Joten tässä, jos numero on 5 tai suurempi, mitä teemme on nyk. numeroinen 56 00:03:24,050 --> 00:03:26,470 kertaa 2 miinus 9. 57 00:03:26,470 --> 00:03:29,940 Ja jos ajattelee, että 5 kertaa 2 on 10. 58 00:03:29,940 --> 00:03:33,130 Ja niin me lisäät 1, joka on 10 miinus 9. 59 00:03:33,130 --> 00:03:35,490 Ja 6 kertaa 2 on 12. 60 00:03:35,490 --> 00:03:38,380 Joten olemme lisäämällä 3, joka on 12 miinus 9. 61 00:03:38,380 --> 00:03:40,250 Ja joka toimii kaikki numerot. 62 00:03:40,250 --> 00:03:43,330 >> Niin, että mitä me lisäät meidän tarkiste. 63 00:03:43,330 --> 00:03:49,970 Ja tämä muuten on mitä käsittely Vaihe Kaksi Luhn algoritmi, joka on vain 64 00:03:49,970 --> 00:03:55,010 lisäämällä numeron, jos se ei tapahdu olla yksi joka toinen numeroa. 65 00:03:55,010 --> 00:04:01,440 Joten kun meillä on, että tämä on pitää kirjaa kaksi ensimmäistä merkkiä 66 00:04:01,440 --> 00:04:05,220 luottokortin numero, kaksi ensimmäistä numeroa, koska olemme lopulta menossa 67 00:04:05,220 --> 00:04:08,980 haluta käyttää, että tänne tarkistaa, okei, Visa on aloitettava 68 00:04:08,980 --> 00:04:14,440 tämän, ja American Express tarpeisiin aloittaa tämän, ja niin edelleen. 69 00:04:14,440 --> 00:04:16,850 >> Lopuksi teemme luottokortilla määrä vastaa luottokortin 70 00:04:16,850 --> 00:04:18,730 määrä jaettuna 10. 71 00:04:18,730 --> 00:04:19,829 Miksi teemme niin? 72 00:04:19,829 --> 00:04:22,070 No, me vain käsitellä viimeisen numeron. 73 00:04:22,070 --> 00:04:24,880 Jakamalla 10 siirtyy koko numeron yli. 74 00:04:24,880 --> 00:04:27,150 Joten nyt kun silmukka takaisin, olemme aiotaan käsittely 75 00:04:27,150 --> 00:04:28,540 toiseksi viimeisen numeron. 76 00:04:28,540 --> 00:04:31,060 Sitten kun osuimme tätä uudelleen, aiomme katkaista toiseksi viimeinen 77 00:04:31,060 --> 00:04:35,060 numeroinen, silmukka takaisin, ja käsitellä kolmannen kestämään numeron, ja niin edelleen, kunnes 78 00:04:35,060 --> 00:04:40,120 määrä saavuttaa 0, missä vaiheessa rikomme ulos while-silmukka. 79 00:04:40,120 --> 00:04:43,560 >> Olemme myös pitää kirjaa luotto kortin numero pituus, koska se on 80 00:04:43,560 --> 00:04:48,440 tärkeää erottaa onko se voimassa olevan luottokortin numeron. 81 00:04:48,440 --> 00:04:53,560 Joten nyt, kun olemme laskettu tarkiste, voimme selvittää, onko se 82 00:04:53,560 --> 00:04:55,180 on voimassa olevaa korttia. 83 00:04:55,180 --> 00:04:58,010 Tarkiste mod 10 on osa of Luhn algoritmi. 84 00:04:58,010 --> 00:05:03,360 Jos tarkiste mod 10 palaa jotain ei-nolla, niin tämä palaa totta, 85 00:05:03,360 --> 00:05:06,650 jolloin määrä on virheellinen. 86 00:05:06,650 --> 00:05:12,590 >> Muuten, jos tarkiste mod 10 on 0, niin voimme jatkaa. 87 00:05:12,590 --> 00:05:18,360 Tämä iso if sanoo, jos ensimmäinen kaksi numeroa ovat yhtä AMEX 1, 88 00:05:18,360 --> 00:05:23,640 jos tänne, näemme, että AMEX 1, kohti spec, on 34. 89 00:05:23,640 --> 00:05:26,595 Ja me myös verrata sitä to AMEX 2, joka on 37. 90 00:05:26,595 --> 00:05:30,360 91 00:05:30,360 --> 00:05:34,210 Ja luottokortin numeron pituus on on yhtä suuri kuin odotettavissa American Express 92 00:05:34,210 --> 00:05:37,910 kortti pituus, niin voimme tulostaa American Express. 93 00:05:37,910 --> 00:05:41,920 >> Teemme samanlainen juttu Visa. 94 00:05:41,920 --> 00:05:51,940 Kaksi ensimmäistä numeroa tarvitse olla suurempi tai yhtä suuri kuin 40, tai pienempi 95 00:05:51,940 --> 00:05:54,290 tai yhtä suuri kuin 49. 96 00:05:54,290 --> 00:05:57,180 Nämä edustavat voimassa Visa-kortteja. 97 00:05:57,180 --> 00:06:01,530 Ja pituuden on oltava yhtä suuri kuin Visa Pituus 1 tai Visa Pituus 2. 98 00:06:01,530 --> 00:06:07,320 Ja niin pituuden on oltava joko 13 tai 16 merkkiä pitkä. 99 00:06:07,320 --> 00:06:12,240 >> Ja lopuksi MasterCard, se on samanlainen Visa, että kaksi ensimmäistä 100 00:06:12,240 --> 00:06:15,340 numeroa täytyy olla tietyssä alue, ja pituuden on 101 00:06:15,340 --> 00:06:19,440 täsmälleen 16 numeroa. 102 00:06:19,440 --> 00:06:24,390 Joten jos jossain näistä asioista pitää, sitten Ensimmäisessä tapauksessa me tulostaa Amex. 103 00:06:24,390 --> 00:06:26,310 Jos tapauksessa pätee, me tulostaa Visa. 104 00:06:26,310 --> 00:06:28,400 Jos tapauksessa pitää käymme tulostaa MasterCard. 105 00:06:28,400 --> 00:06:32,170 >> Mutta jos mikään näistä pidä, vaikka jos tarkistussumma oli voimassa, 106 00:06:32,170 --> 00:06:33,900 me silti tulostaa kelpaa. 107 00:06:33,900 --> 00:06:37,050 Koska se ei ole yksi näitä kortteja. 108 00:06:37,050 --> 00:06:40,030 Nimeni on Rob, ja toivon, löytyi luottoa mielenkiintoinen. 109 00:06:40,030 --> 00:06:46,272