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] 
-------------------------------------------------------------------------

Responder a