1 00:00:00,000 --> 00:00:00,820 2 00:00:00,820 --> 00:00:02,560 >> Zamyla Chan: Kom ons maak seker jou krediet. 3 00:00:02,560 --> 00:00:06,360 In hierdie probleem is, sal ons die gebruiker gevra vir 'n inset van 'n kredietkaart nommer. 4 00:00:06,360 --> 00:00:10,090 Dan sal ons wat kredietkaart hardloop aantal om te sien of dit is geldig. 5 00:00:10,090 --> 00:00:13,430 Indien wel, sal ons die maatskappy te druk dat kredietkaart behoort. 6 00:00:13,430 --> 00:00:17,520 Andersins, sal ons die gebruiker vertel dat die kaart is ongeldig. 7 00:00:17,520 --> 00:00:20,210 >> Kom ons spring reg in met waarna vir die gebruiker se toevoer. 8 00:00:20,210 --> 00:00:23,080 Die kredietkaart nommer is van datatipe long_long, 9 00:00:23,080 --> 00:00:27,190 sodat die CS50 biblioteek funksie get_long_long sal baie nuttig wees. 10 00:00:27,190 --> 00:00:30,690 Maar hierdie funksie verseker dat die gebruiker insette enige heelgetal. 11 00:00:30,690 --> 00:00:34,730 So 'n positiewe heelgetalle, negatiewe heelgetalle, of nul is alles goed. 12 00:00:34,730 --> 00:00:37,560 So aan jou om verder bekragtig of 13 00:00:37,560 --> 00:00:41,770 die gebruiker het ons 'n geldige gegee tipe kredietkaart nommer. 14 00:00:41,770 --> 00:00:44,560 >> Nou dat ons 'n kredietkaart aantal van die gebruiker, dan 15 00:00:44,560 --> 00:00:46,580 ons nodig het om die checksum bereken. 16 00:00:46,580 --> 00:00:49,780 So kredietkaart checksums word soos volg bereken. 17 00:00:49,780 --> 00:00:54,370 Vanaf die tweede laaste syfer, Ons vermenigvuldig elke ander syferheelgetalle deur 2. 18 00:00:54,370 --> 00:00:57,060 Dan voeg ons daardie syfers produkte 'saam. 19 00:00:57,060 --> 00:01:00,140 Van ons voeg die som van die syfers wat 20 00:01:00,140 --> 00:01:03,780 is nie vermenigvuldig met 2 tot daardie vorige som wat ons bereken. 21 00:01:03,780 --> 00:01:08,480 Ten slotte, as dat die getal eindig in 0, dan is die getal geldig is. 22 00:01:08,480 --> 00:01:11,760 >> Kom ons gaan deur middel van 'n voorbeeld en neem hierdie stap vir stap. 23 00:01:11,760 --> 00:01:14,930 So ons eerste stap is om te begin tussen die tweede en laaste syfer 24 00:01:14,930 --> 00:01:18,080 en vermenigvuldig elke ander syfer deur twee. 25 00:01:18,080 --> 00:01:22,240 Nou, as ek gestoor die kredietkaart nommer in 'n veranderlike genoem CC nommer, 26 00:01:22,240 --> 00:01:26,060 dan modding dat met 10 sou gee my die heel laaste syfer. 27 00:01:26,060 --> 00:01:28,910 So, hoe kan jy toegang die tweede laaste syfer? 28 00:01:28,910 --> 00:01:32,030 >> OK, so as ons het toegang tot die tweede laaste syfer, 29 00:01:32,030 --> 00:01:35,790 dan sal ons Itereer deur vermenigvuldig elke ander syferheelgetalle deur 2. 30 00:01:35,790 --> 00:01:38,620 Sodra ons dit, dan Ons sal die produkte te neem 31 00:01:38,620 --> 00:01:41,350 en saam te voeg syfers daardie produkte. 32 00:01:41,350 --> 00:01:43,830 So hier het ek enkele syfers, so dit is goed. 33 00:01:43,830 --> 00:01:47,480 Maar dan weer ek by my laaste number-- 7 vermenigvuldig met 2-- 34 00:01:47,480 --> 00:01:52,080 Ek voeg die 1 en die 4 vir my gee 27. 35 00:01:52,080 --> 00:01:55,980 Daarvandaan het ons byvoeg dat product-- 27-- aan die som van die syfers wat 36 00:01:55,980 --> 00:01:57,790 is nie vermenigvuldig met 2. 37 00:01:57,790 --> 00:02:01,070 >> So hier Ek het al na vore gebring van dié nommers in oranje. 38 00:02:01,070 --> 00:02:04,900 Sodra ons die syfers voeg, dan Ons kry ons finale checksum nommer. 39 00:02:04,900 --> 00:02:09,120 So ons bekragtig dit deur seker dat die laaste syfer is 0. 40 00:02:09,120 --> 00:02:12,635 As die checksum eindig nie in 0, dan is die kredietkaart nommer 41 00:02:12,635 --> 00:02:14,400 is beslis ongeldig. 42 00:02:14,400 --> 00:02:17,840 Andersins, laat ons gaan op na check die maatskappy identifiseerders 43 00:02:17,840 --> 00:02:19,870 en die lengte kredietkaart. 44 00:02:19,870 --> 00:02:21,830 >> Ons het 'n lys verskaf van drie maatskappye, 45 00:02:21,830 --> 00:02:25,940 saam met dié, die aantal heelgetalle dat hul kredietkaart nommers het. 46 00:02:25,940 --> 00:02:29,630 Toe die eerste twee syfers wat die kaarte kan begin. 47 00:02:29,630 --> 00:02:34,070 So aan jou om tred te hou met die hou eerste twee syfers van die kredietkaart 48 00:02:34,070 --> 00:02:37,620 en die getal van heelgetalle in die kaart. 49 00:02:37,620 --> 00:02:40,110 En met dié, het jy klaar die probleem. 50 00:02:40,110 --> 00:02:44,210 My naam is Zamyla, en dit was Krediet. 51 00:02:44,210 --> 00:02:45,859