bom, hoje cedo tava vendo o algoritimo para testar CPF... ele é bem simples, vou dar um resumida...
vc pega os 9 primeiros digitos do CPF, ou seja, esquece os 2 digitos verificadores....
para checar o 1° digito, vc multiplica por 10 o 1° digito, por 9 o 2° e assim por diante
ate chegar no 9° digito que multiplica por 2....
Soma o resultado de todas essas multiplicações. ai ve o resto da divisão dessa soma por 11
se o resto for 0 ou 1 ... então o 1° digito será 0, caso contraio faz 11-resto e esse será o 1° digito
1 2 3 4 5 6 7 8 9
10 9 8 7 6 5 4 3 2
para o 2° digito é igual, so que começa do 11.... 11 x 1° digito ... 10 x 2° digito.... 3 x 9° digito...
faz o mesmo com o resto e acha o segundo digito...
1 2 3 4 5 6 7 8 9
11 10 9 8 7 6 5 4 3
bom com esses 2 digitos só checar se bate com os digitos verificadores informados pelo usuario....
o problema ta sendo bem basico.... quando o CPF é [CPF removido] a conta bate tb... e da valido...
seria esse CPF valido ????
segue código java para algoritimo
//String de CPF valida com 11 digitos
public static String digitValidator(String cpfString) {
long firstDigitSum = 0;
long secondDigitSum = 0;
for (int i = 0; i<10; i++) {
String s = cpfString.substring(i, i+1);
firstDigitSum += (10-i) * Integer.parseInt(s);
secondDigitSum += (11-i) * Integer.parseInt(s);
}
//firstDigitSum%11 é o mesmo que "Resto da divisão de firstDigitSum por 11"
long digit1 = ((firstDigitSum % 11) > 1) ? 11 - (firstDigitSum % 11) : 0;
long digit2 = ((secondDigitSum % 11) > 1) ? 11- (secondDigitSum % 11) : 0;
return "" + digit1 + digit2;
}
.... quando envio o cpf [CPF removido] ele sai como valido =[ mais queria saber c na real eu concidero isso como verade