>> Zamyla Chan: Laten we eens kijken uw krediet.
In dit probleem, zullen we de gebruiker gevraagd voor een ingang van een creditcardnummer.
Dan zullen we dat credit card draaien nummer om te zien of deze geldig is.
Als dat zo is, zullen we het bedrijf af te drukken dat credit card behoort.
Anders zullen we de gebruiker te vertellen dat die kaart is ongeldig.
>> Laten we springen recht in met vragen om input van de gebruiker.
Het credit card nummer is van het type data long_long,
zodat de CS50 bibliotheekfunctie get_long_long zal heel nuttig zijn.
Maar dit zorgt ervoor dat voert de gebruiker een geheel getal.
Dus elke positieve gehele getallen, negatieve integers, of nul is allemaal prima.
Dus aan jou om verder valideren of niet
de gebruiker heeft ons een geldige gegeven credit card typenummer.
>> Nu dat we een credit card nummer van de gebruiker, dan
we nodig hebben om de checksum te berekenen.
Dus credit card checksums worden als volgt berekend.
Vanaf het tweede naar het laatste cijfer, we vermenigvuldigen elk ander cijfer door 2.
Daarna voegen we die cijfers producten 'bij elkaar.
Vanaf dat we voegen de som van de cijfers die
niet vermenigvuldigd met 2 dat previous bedrag dat we berekend.
Ten slotte, als dat nummer eindigt in 0, dan is het nummer geldig is.
>> Laten we gaan door een voorbeeld en neem deze stap voor stap.
Dus onze eerste stap is om te beginnen van de tweede naar laatste cijfer
en vermenigvuldig elk ander cijfer door twee.
Nu, als ik opgeslagen de credit card nummer in een variabele met de naam CC-nummer,
dan modding dat met 10 zou geef me de laatste cijfer.
Dus hoe kan je toegang de tweede naar laatste cijfer?
>> OK, dus zodra we hebben benaderd de tweede naar laatste cijfer,
dan zullen we doorlopen vermenigvuldigen van elk ander cijfer met 2.
Zodra we dat, dan we zullen deze producten te nemen
en samen te voegen cijfers die producten '.
Dus hier heb ik enkele cijfers, dus dat is prima.
Maar zodra ik aan mijn laatste number-- 7 vermenigvuldigd met 2--
Ik voeg de 1 en de 4 om mij 27.
Vanaf daar, we toevoegen dat product-- 27-- aan de som van de cijfers die
niet vermenigvuldigd met 2.
>> Dus hier Ik heb al gewezen op van die nummers in oranje.
Zodra we deze cijfers toe te voegen, dan krijgen we onze laatste checksum-nummer.
Dus we valideren door het maken van ervoor dat het laatste cijfer is 0.
Als de checksum niet eindigt in 0, dan is de credit card nummer
is zeker ongeldig.
Zo niet, laten we gaan op naar Controleer het bedrijf identifiers
en het aantal lengte credit card.
>> We hebben een lijst ontvangen van de drie bedrijven,
samen daarmee het aantal getallen dat hun credit card nummers.
Dan is de eerste twee cijfers die die kaarten zouden kunnen beginnen.
Dus aan jou om bij te houden van het te houden eerste twee cijfers van de creditcard
en het aantal gehele getallen die kaart.
En met dat, je hebt klaar met het probleem.
Mijn naam is Zamyla, en dit was Credit.