mirror of
https://github.com/TheAlgorithms/Java.git
synced 2026-02-04 04:23:32 +08:00
@@ -35,16 +35,16 @@ public class Verhoeff {
|
||||
* Dihedral group</a>
|
||||
*/
|
||||
private static final byte[][] MULTIPLICATION_TABLE = {
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
|
||||
{ 1, 2, 3, 4, 0, 6, 7, 8, 9, 5 },
|
||||
{ 2, 3, 4, 0, 1, 7, 8, 9, 5, 6 },
|
||||
{ 3, 4, 0, 1, 2, 8, 9, 5, 6, 7 },
|
||||
{ 4, 0, 1, 2, 3, 9, 5, 6, 7, 8 },
|
||||
{ 5, 9, 8, 7, 6, 0, 4, 3, 2, 1 },
|
||||
{ 6, 5, 9, 8, 7, 1, 0, 4, 3, 2 },
|
||||
{ 7, 6, 5, 9, 8, 2, 1, 0, 4, 3 },
|
||||
{ 8, 7, 6, 5, 9, 3, 2, 1, 0, 4 },
|
||||
{ 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
|
||||
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
||||
{1, 2, 3, 4, 0, 6, 7, 8, 9, 5},
|
||||
{2, 3, 4, 0, 1, 7, 8, 9, 5, 6},
|
||||
{3, 4, 0, 1, 2, 8, 9, 5, 6, 7},
|
||||
{4, 0, 1, 2, 3, 9, 5, 6, 7, 8},
|
||||
{5, 9, 8, 7, 6, 0, 4, 3, 2, 1},
|
||||
{6, 5, 9, 8, 7, 1, 0, 4, 3, 2},
|
||||
{7, 6, 5, 9, 8, 2, 1, 0, 4, 3},
|
||||
{8, 7, 6, 5, 9, 3, 2, 1, 0, 4},
|
||||
{9, 8, 7, 6, 5, 4, 3, 2, 1, 0},
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -71,14 +71,14 @@ public class Verhoeff {
|
||||
* {@code p(i+j,n) = p(i, p(j,n))}.
|
||||
*/
|
||||
private static final byte[][] PERMUTATION_TABLE = {
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 },
|
||||
{ 1, 5, 7, 6, 2, 8, 3, 0, 9, 4 },
|
||||
{ 5, 8, 0, 3, 7, 9, 6, 1, 4, 2 },
|
||||
{ 8, 9, 1, 6, 0, 4, 3, 5, 2, 7 },
|
||||
{ 9, 4, 5, 3, 1, 2, 6, 8, 7, 0 },
|
||||
{ 4, 2, 8, 6, 5, 7, 3, 9, 0, 1 },
|
||||
{ 2, 7, 9, 3, 8, 0, 6, 4, 1, 5 },
|
||||
{ 7, 0, 4, 6, 9, 1, 3, 2, 5, 8 },
|
||||
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
|
||||
{1, 5, 7, 6, 2, 8, 3, 0, 9, 4},
|
||||
{5, 8, 0, 3, 7, 9, 6, 1, 4, 2},
|
||||
{8, 9, 1, 6, 0, 4, 3, 5, 2, 7},
|
||||
{9, 4, 5, 3, 1, 2, 6, 8, 7, 0},
|
||||
{4, 2, 8, 6, 5, 7, 3, 9, 0, 1},
|
||||
{2, 7, 9, 3, 8, 0, 6, 4, 1, 5},
|
||||
{7, 0, 4, 6, 9, 1, 3, 2, 5, 8},
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -147,29 +147,20 @@ public class Verhoeff {
|
||||
}
|
||||
|
||||
private static void checkAndPrint(String input) {
|
||||
String validationResult = Verhoeff.verhoeffCheck(input)
|
||||
? "valid"
|
||||
: "not valid";
|
||||
String validationResult = Verhoeff.verhoeffCheck(input) ? "valid" : "not valid";
|
||||
System.out.println("Input '" + input + "' is " + validationResult);
|
||||
}
|
||||
|
||||
private static void generateAndPrint(String input) {
|
||||
String result = addVerhoeffChecksum(input);
|
||||
System.out.println(
|
||||
"Generate and add checksum to initial value '" +
|
||||
input +
|
||||
"'. Result: '" +
|
||||
result +
|
||||
"'"
|
||||
);
|
||||
"Generate and add checksum to initial value '" + input + "'. Result: '" + result + "'");
|
||||
}
|
||||
|
||||
private static void checkInput(String input) {
|
||||
Objects.requireNonNull(input);
|
||||
if (!input.matches("\\d+")) {
|
||||
throw new IllegalArgumentException(
|
||||
"Input '" + input + "' contains not only digits"
|
||||
);
|
||||
throw new IllegalArgumentException("Input '" + input + "' contains not only digits");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user