1 00:00:00,000 --> 00:00:00,820 2 00:00:00,820 --> 00:00:02,560 >> Zamyla Chan: Laten we eens kijken uw krediet. 3 00:00:02,560 --> 00:00:06,360 In dit probleem, zullen we de gebruiker gevraagd voor een ingang van een creditcardnummer. 4 00:00:06,360 --> 00:00:10,090 Dan zullen we dat credit card draaien nummer om te zien of deze geldig is. 5 00:00:10,090 --> 00:00:13,430 Als dat zo is, zullen we het bedrijf af te drukken dat credit card behoort. 6 00:00:13,430 --> 00:00:17,520 Anders zullen we de gebruiker te vertellen dat die kaart is ongeldig. 7 00:00:17,520 --> 00:00:20,210 >> Laten we springen recht in met vragen om input van de gebruiker. 8 00:00:20,210 --> 00:00:23,080 Het credit card nummer is van het type data long_long, 9 00:00:23,080 --> 00:00:27,190 zodat de CS50 bibliotheekfunctie get_long_long zal heel nuttig zijn. 10 00:00:27,190 --> 00:00:30,690 Maar dit zorgt ervoor dat voert de gebruiker een geheel getal. 11 00:00:30,690 --> 00:00:34,730 Dus elke positieve gehele getallen, negatieve integers, of nul is allemaal prima. 12 00:00:34,730 --> 00:00:37,560 Dus aan jou om verder valideren of niet 13 00:00:37,560 --> 00:00:41,770 de gebruiker heeft ons een geldige gegeven credit card typenummer. 14 00:00:41,770 --> 00:00:44,560 >> Nu dat we een credit card nummer van de gebruiker, dan 15 00:00:44,560 --> 00:00:46,580 we nodig hebben om de checksum te berekenen. 16 00:00:46,580 --> 00:00:49,780 Dus credit card checksums worden als volgt berekend. 17 00:00:49,780 --> 00:00:54,370 Vanaf het tweede naar het laatste cijfer, we vermenigvuldigen elk ander cijfer door 2. 18 00:00:54,370 --> 00:00:57,060 Daarna voegen we die cijfers producten 'bij elkaar. 19 00:00:57,060 --> 00:01:00,140 Vanaf dat we voegen de som van de cijfers die 20 00:01:00,140 --> 00:01:03,780 niet vermenigvuldigd met 2 dat previous bedrag dat we berekend. 21 00:01:03,780 --> 00:01:08,480 Ten slotte, als dat nummer eindigt in 0, dan is het nummer geldig is. 22 00:01:08,480 --> 00:01:11,760 >> Laten we gaan door een voorbeeld en neem deze stap voor stap. 23 00:01:11,760 --> 00:01:14,930 Dus onze eerste stap is om te beginnen van de tweede naar laatste cijfer 24 00:01:14,930 --> 00:01:18,080 en vermenigvuldig elk ander cijfer door twee. 25 00:01:18,080 --> 00:01:22,240 Nu, als ik opgeslagen de credit card nummer in een variabele met de naam CC-nummer, 26 00:01:22,240 --> 00:01:26,060 dan modding dat met 10 zou geef me de laatste cijfer. 27 00:01:26,060 --> 00:01:28,910 Dus hoe kan je toegang de tweede naar laatste cijfer? 28 00:01:28,910 --> 00:01:32,030 >> OK, dus zodra we hebben benaderd de tweede naar laatste cijfer, 29 00:01:32,030 --> 00:01:35,790 dan zullen we doorlopen vermenigvuldigen van elk ander cijfer met 2. 30 00:01:35,790 --> 00:01:38,620 Zodra we dat, dan we zullen deze producten te nemen 31 00:01:38,620 --> 00:01:41,350 en samen te voegen cijfers die producten '. 32 00:01:41,350 --> 00:01:43,830 Dus hier heb ik enkele cijfers, dus dat is prima. 33 00:01:43,830 --> 00:01:47,480 Maar zodra ik aan mijn laatste number-- 7 vermenigvuldigd met 2-- 34 00:01:47,480 --> 00:01:52,080 Ik voeg de 1 en de 4 om mij 27. 35 00:01:52,080 --> 00:01:55,980 Vanaf daar, we toevoegen dat product-- 27-- aan de som van de cijfers die 36 00:01:55,980 --> 00:01:57,790 niet vermenigvuldigd met 2. 37 00:01:57,790 --> 00:02:01,070 >> Dus hier Ik heb al gewezen op van die nummers in oranje. 38 00:02:01,070 --> 00:02:04,900 Zodra we deze cijfers toe te voegen, dan krijgen we onze laatste checksum-nummer. 39 00:02:04,900 --> 00:02:09,120 Dus we valideren door het maken van ervoor dat het laatste cijfer is 0. 40 00:02:09,120 --> 00:02:12,635 Als de checksum niet eindigt in 0, dan is de credit card nummer 41 00:02:12,635 --> 00:02:14,400 is zeker ongeldig. 42 00:02:14,400 --> 00:02:17,840 Zo niet, laten we gaan op naar Controleer het bedrijf identifiers 43 00:02:17,840 --> 00:02:19,870 en het aantal lengte credit card. 44 00:02:19,870 --> 00:02:21,830 >> We hebben een lijst ontvangen van de drie bedrijven, 45 00:02:21,830 --> 00:02:25,940 samen daarmee het aantal getallen dat hun credit card nummers. 46 00:02:25,940 --> 00:02:29,630 Dan is de eerste twee cijfers die die kaarten zouden kunnen beginnen. 47 00:02:29,630 --> 00:02:34,070 Dus aan jou om bij te houden van het te houden eerste twee cijfers van de creditcard 48 00:02:34,070 --> 00:02:37,620 en het aantal gehele getallen die kaart. 49 00:02:37,620 --> 00:02:40,110 En met dat, je hebt klaar met het probleem. 50 00:02:40,110 --> 00:02:44,210 Mijn naam is Zamyla, en dit was Credit. 51 00:02:44,210 --> 00:02:45,859