Skip to content

Instantly share code, notes, and snippets.

@l-ray
Created October 15, 2014 13:50
Show Gist options
  • Save l-ray/59478fa3b97fcd5558bb to your computer and use it in GitHub Desktop.
Save l-ray/59478fa3b97fcd5558bb to your computer and use it in GitHub Desktop.
Modulo10 Rekursiv in Gosu
uses java.lang.Character
uses java.lang.Integer
uses java.util.ArrayList
class ModuloTenRecursiveProcessor {
/**
* Validate a number string using Modulo10 rekursiv
*/
public static function checkSum(numberString:String):int {
// pattern to allow recursive solution.
var table: int[] = { 0, 9, 4, 6, 8, 2, 7, 1, 3, 5 }
var carryForward: int = 0
var numberArray: List<Integer> = convertToNumberArray(numberString)
for (number in numberArray)
{
carryForward = table[(carryForward + number) % 10]
}
return (10 - carryForward) % 10
}
/**
* Returns given String as array of digits. Whitespaces will be removed
*/
@Param ( "numberString", "Number to be converted" )
@Returns ( "Array of digits" )
private static function convertToNumberArray(numberString:String) : List<Integer> {
var numberArray:List<Integer> = new ArrayList<Integer>(numberString.length)
for (var myChar in numberString.toCharArray() index i) {
if (Character.isDigit(myChar)) {
numberArray.add(Character.getNumericValue(myChar))
}
}
return numberArray
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment