Luhn algorithm: Difference between revisions

Content deleted Content added
add typescript example
Java: the algorithm was highly inefficient and not how it is normally written in Java
Line 140:
<syntaxhighlight lang="java" line="1">
public static boolean isValidLuhn(String number) {
int checksum = Character.getNumericValue(number.charAt(number.length() - 1));
int total = 0;
boolean even = true;
 
for// (intiterate ifrom =right number.length()to -left, 2;double ievery >='even' 0; i--) {value
for (int i = intn sum- 2; i >= 0; i--) {
int digit = Character.getNumericValue(number.charAt(i)) - '0';
if (idigit %< 20 ==|| number.length()digit %> 29) { //right to left every odd digit
digit// =value digitmay *only 2;contain digits
return false;
}
if (even) {
 
sum = digit / 10 + digit %<<= 101; // double value
total += sum;}
even = !even;
 
total += digit > 9 ? digit - 9 : digit;
 
}
int checksum = Character.getNumericValue(number.charAt(number.length()n - 1)) - '0';
 
return (total %+ 10 != 0 ? 10 - totalchecksum) % 10 == checksum : checksum == 0;
}
</syntaxhighlight>