Escreva um programa que usa um número de cartão de crédito e determina se é um número válido ou não. Aqui está o algoritmo para determinar se o número é válido:
A partir do dígito mais à direita (o dígito de verificação), formam a soma de todos os outros dígitos. Por exemplo, se o número de cartão de crédito for 5490123456789128, você poderia somar até 8++ 1++ 8++ 6++ 4++ 2++ 0 + 4 = 33.
Agora, para cada um dos dígitos restantes, duplo-los e juntos adicione seus dígitos resultantes. Aqui você é deixado com 5 9 1 3 5 7 9 2. Duplicação da lhes dá-lhe 10 18 2 6 10 14 18 4. Adicionar todos os dígitos agora dá-lhe 1++ 0 + 1++ 8++ 2++ 6++ 1++ 0 + 1++ 4++ 1++ 8++ 4 = 37.
Somar os dois montantes das etapas acima. 33++ 37 = 70.
Se o resultado termina em 0 (ou seja, é uniformemente dividido por 10), então é um número de cartão de crédito válido. Caso contrário, não é.
Esse método é chamado de seleção "mod 10".
Depois de determinar se o número é válido ou não, você irá informar o usuário e se o número não é válido, informe ao usuário o que o dígito de verificação deve ser para essa placa.
Uma dica: se você ler o número como uma Cadeia de caracteres, você terá que converter cada dígito do caractere para o valor numérico real.
ENTRADA: Uma Cadeia de caracteres
SAÍDA:
Cartão de crédito!
- ou -
Cartão de crédito inválido!
O dígito de verificação deve ser: _
public static void main (String [] args) {
Teclado scanner = novo Scanner(System.in);
Boolean mesmo = true;
System.out.Print ("Insira um cartão de crédito número sem espaços:");
Número de seqüência de caracteres = keyboard.next();
/ / System.out.print ("Número é" + número);
/ / int cardNumb = Integer.parseInt(number);
for (int i = 1; i< number.length();="" i="i" +="" 2)="" {="">
int Num = Integer.parseInt(number.charAt(i) + "");
sum1 int;
int sum2 = 0;
sum1 = sum2 + Num;
sum2 = sum2 + (Num % 10);
sum1 = sum1 + (Num % 10);
se (sum1 = = sum2) {
se (i % 2 = = 0) {
mesmo = true;
} else {
mesmo = false;
System.out.Print ("O dígito de verificação deve ser:" + i);
}
}
}
se (mesmo = = true) {
System.out.Print ("número válido");
}
se (mesmo = = false) {
System.out.Print ("número inválido");
}
// ////////////////////////////////
}
}
Eu não sei como verificar se o dígito certo?