Oi pessoal, tudo bom ?
Segue em anexo o código que estou fazendo para gerar números aleatórios de PIS:
[code] public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
int num = 0;
String numero = “”;
for (int i = 0; i<10; i++){
num = r.nextInt(9);
numero += Integer.toString(num);
}
int a = Integer.parseInt(String.valueOf(numero.charAt(0)));
int b = Integer.parseInt(String.valueOf(numero.charAt(1)));
int c = Integer.parseInt(String.valueOf(numero.charAt(2)));
int d = Integer.parseInt(String.valueOf(numero.charAt(3)));
int e = Integer.parseInt(String.valueOf(numero.charAt(4)));
int f = Integer.parseInt(String.valueOf(numero.charAt(5)));
int g = Integer.parseInt(String.valueOf(numero.charAt(6)));
int h = Integer.parseInt(String.valueOf(numero.charAt(7)));
int i = Integer.parseInt(String.valueOf(numero.charAt(8)));
int j = Integer.parseInt(String.valueOf(numero.charAt(9)));
System.out.println(numero);
int soma = (3*a) + (2*b) + (9*c) + (8*d) + (7*e) + (6*f) + (5*g) + (4*h) + (3*i) + (2*j);
System.out.println("soma = " + soma);
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println(i);
System.out.println(j);
//int soma = (3*1) + (2*1) + (9*1) + (8*1) + (7*1) + (6*1) + (5*1) + (4*1) + (3*1) + (2*1);
//System.out.println(soma%11);
int resto = soma%11;
System.out.println("resto = " + resto);
int digitoVerificador = 11-resto;
if (digitoVerificador == 10 || digitoVerificador == 11)
digitoVerificador = 0;
System.out.println("digitoVerificador = " + digitoVerificador);
numero += String.valueOf(digitoVerificador);
System.out.println(numero);
}
}[/code]
O que estou fazendo de errado ? Estou pegando a saída gerada e utilizando um validador online, como esse aqui: http://www.cadcobol.com/pis_0001.htm, e nenhum número gerado está sendo válido …
um abraço,
Gustavo