Você está na página 1de 20

Revista

Espao da Comunidade

Fonte: Dicionrio Priberam da Lngua Portuguesa

Por Rodrigo Caetano, do COMPUTERWORLD

import j ava. util. Scanner; /** * Lgica em http: //interformacao. wordpress. com/2 007 /1 0/01/algoritmo/ * Baseado no cdigo de Eros Stein */ public class VerificadorCPF { public static void main( String [ ] args) { int soma = 0, mult = 11; byte[ ] var = new byte[ 11] ; System. out. println( " Informe seu CPF: " ) ; Scanner sc = new Scanner( System. in) ; String cpf = sc. next( ) ; // Verifica se o CPF contm menos de // 11 dgitos. if ( cpf. length( ) < 11) { System. out. println( " CPF invlido! " ) ; return; } // Recebe os nmeros e realiza a // multiplicao e soma. for ( byte i = 0; i < 11; i++) { var[ i] = Byte. parseByte( " " +cpf. charAt( i) ) ; if( i<9) soma += ( var[ i] * --mult) ; } // Cria o primeiro dgito verificador.

if( ( soma%11) < 2 ) { var[ 9] = 0; } else { var[ 9] = ( byte) ( 11 - ( soma%11) ) ; } // Reinicia os valores. soma = 0; mult = 11; // Realiza a multiplicao e soma do // segundo dgito. for ( byte i = 0; i < 10; i++) soma += var[ i] * mult--; // Cria o segundo dgito verificador if ( ( soma%11) < 2 ) { var[ 10] = 0; } else { var[ 10] = ( byte) ( 11 - ( soma%11) ) ; } // Resultado Final if( Byte. parseByte( " " +cpf. charAt( 9) ) ! = var[ 9] | | Byte. parseByte( " " +cpf. charAt( 10) ) ! = var[ 10] ) { System. out. println( " CPF invlido! " ) ; } else { System. out. println( " CPF vlido! " ) ; }

Você também pode gostar