10. ISO/IEC 7064, MOD 11,10

10.2. Versión con arreglo char

/*
 *  programa para calcular la cifra de verificación según ISO/IEC 7064, MOD 11,10 
 * 
 *  Ing. Germán Andrés Xander 2022
 */

#include <iostream>
using namespace std;

int main(int argc, char **argv){
   int producto=10, suma=0, verificador, i=0;
   char numero[30];
   cout<<"ingrese el número a evaluar"<<endl;
   cin>>numero;
         
   while (numero[i]){      
      suma = (numero[i]-'0' + producto) % 10;
      if (suma == 0) suma =10;
      producto = (suma * 2) % 11;
      i++;
   }
   verificador = 11 - producto;
   if (verificador == 10) verificador = 0;
   
   // para verificar la suma final tiene que ser 1
   
   cout<<"el digito de verificacion es: "<<verificador<<endl;
   cout<<"la suma es: "<<suma;
   return 0;
}