Veja se o código seguinte ajuda.
public class Dv {
public int calcDv(String num) {
int temp, resto, dig, k = 1 ;
int arr[] = new int[3] ;
for (int i = num.length()-1 ; i >= 0 ; i--) {
arr[0] = Integer.parseInt(num.substring(i,i+1)) ;
temp = ((k % 2) != 0) ? arr[0]*2 : arr[0]*1 ;
arr[1] = (temp / 10) + (temp % 10) ;
arr[2] += arr[1] ;
k++ ;
}
resto = arr[2] % 10 ;
dig = (resto != 0) ? 10 - resto : 0 ;
return dig ;
}
public static void main(String args[]) {
try {
if (args.length != 0) {
Dv digVerif = new Dv() ;
int digito = digVerif.calcDv(args[0]) ;
System.out.println(args[0] + "-" + digito) ;
} else {
System.out.println("Não digitou o código !") ;
}
} catch(NumberFormatException e) {
System.out.println("Código digitado contém caracteres inválidos!") ;
}
}
}
[]'s
Luís Carlos
----- Original Message -----
From: Leia minha Mensagem <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Tuesday, May 08, 2001 2:17 PM
Subject: [java-list] Melhor codigo.
> Ola javaneses,
> tenho que desenvolver a seguinte rotina pra montar digito verificador
> numero: 237905490
> rotina:
> multiplicar cada numero, indicando-se da direita para a esquerda,
> pela sequencia de 2,1,2,1,2,1,2.....;
> 2 3 7 9 0 5 4 9 0
> 2 1 2 1 2 1 2 1 2 x
> ---------------------------------
> 4 3 14 9 0 5 8 9 0
>
> Somar individualmente os algarismo dos resultado, obtendo-se um total "x";
>
> 4+3+(1+4)+9+0+5+8+9+0= 43 = x;
>
> Dividir o valor "x" por 10 e determinar o resto da divisao
(R=resto(x/10));
> R=Resto(43/10);
>
> Digito Vereificador = 10-R ou seja 10-3=7
> DV=7.
>
> Sugestoes, Duvidas e reclamacoes?
>
> Michael
>
>
>
>
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------