Linguaggio C/C++ – Verifica validità carta di credito
Codice C++
#include <iostream>
#include <iomanip>
using namespace std;
int main (void) {
short NumeroCarta[] = {4, 8, 1, 0, 6, 4, 2, 9, 4, 2, 7, 3, 2, 8, 8, 5};
short NumeroCifre = sizeof(NumeroCarta)/sizeof(short);
// 'NumeroCifre' contiene la dimensione del vettore
if (NumeroCifre != 16) {
cout << endl << endl << "Lunghezza sequenza non corretta " << endl << endl;
return 0;
}
short AppoggioCarta[NumeroCifre];
short indice;
cout << "Il Numero della Carta e': " << endl;
for(indice=0; indice< NumeroCifre; indice++) {
cout << NumeroCarta[indice] << " ";
}
cout << endl << endl << endl << "Partendo da destra, ";
cout << "le cifre poste in posizione dispari si prendono come sono." << endl;
cout << "Le cifre poste in posizione pari si raddoppiano; ";
cout << "se il risultato risulta a due cifre, esse si sommano tra loro.";
for (indice=(NumeroCifre-1); indice>=0; indice--) {
if ((indice) % 2 == 0){
// Partendo da destra si raddoppiano le cifre poste in posizione pari
AppoggioCarta[indice]=NumeroCarta[indice] * 2;
// Se il risultato è a due cifre, esse vanno sommate tra loro
if(AppoggioCarta[indice] >= 10)
AppoggioCarta[indice] = 1 + (AppoggioCarta[indice] % 10);
}
else
// Le cifre poste in posizione dispari si prendono come sono
AppoggioCarta[indice]=NumeroCarta[indice];
}
// Si visualizza la sequenza ottenuta
cout << endl << endl << "La sequenza dell'elaborazione e': " << endl;
for(indice=0;indice<NumeroCifre;indice++) {
cout << AppoggioCarta[indice] << " ";
}
short somma=0;
// Si sommano tra loro tutte le cifre ottenute
for(indice=0;indice<NumeroCifre;indice++) {
somma+= AppoggioCarta[indice];
}
cout << endl << endl << endl;
cout << "La somma della sequenza vale " << somma << ", ";
// Verificare se la somma è un multiplo di 10,
// ovvero se il resto della divisione per 10 è 0
if (somma % 10 == 0) { // la somma è divisibile per 10
cout << "ed e' un multiplo di 10." << endl << endl;
cout << "Di conseguenza, il numero della carta di credito risulta ";
cout << "ESATTO!";
}
else { // la somma non è divisibile per 10
cout << "e NON e' un multiplo di 10." << endl << endl;
cout << "Di conseguenza, il numero della carta di credito risulta ";
cout << "NON ESATTO!";
}
cout << endl << endl << endl;
system ("pause");
return 0;
}
Visite: 1537
martedì 28 Settembre - 2021