Έλεγχος ISBN
import gr.aueb.dds.BIO;
/*
 * Read an ISBN number and verify if its checksum is ok.
 * Demonstrates conversion of characters to integers, post-decrement,
 * checksums.
 */
class Isbn {
        public static void main(String args[]) {
                int count = 10;         // Digit count and weight
                int sum = 0;            // Checksum
                int code, value;
                char c;
                while (count > 0) {
                        code = BIO.readChar();
                        if (code == -1) {
                                BIO.println("Short ISBN");
                                return;
                        }
                        c = (char)code;
                        // Integer representation of the digit
                        if (c == 'X')
                                value = 10;
                        else
                                // Should use Character.digit(c, 10)
                                value = c - '0';
                        if (value < 0 || value > 10) {
                                BIO.println("Bad ISBN character");
                                return;
                        }
                        sum = sum + value * count--;
                }
                if (sum % 11 == 0)
                        BIO.println("ISBN checks ok");
                else
                        BIO.println("ISBN is wrong");
        }
}
Εξηγήσεις
-  Γιατί πολλαπλασιάζουμε με count;
Για να ανιχνεύουμε εναλλαγές ψηφίων.
 -  Γιατί διαιρούμε με το 11;
Ο αριθμός που διαιρούμε πρέπει να είναι μεγαλύτερος από κάθε ψηφίο και από τον
αριθμό των θέσεων.
Πρέπει ακόμα, να μην έχει παράγοντα κάποιον από τους αριθμούς αυτούς
(στην πράξη, να είναι πρώτος).