Created
October 15, 2014 13:50
-
-
Save l-ray/59478fa3b97fcd5558bb to your computer and use it in GitHub Desktop.
Modulo10 Rekursiv in Gosu
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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