September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
25
Task/SEDOLs/Kotlin/sedols.kotlin
Normal file
25
Task/SEDOLs/Kotlin/sedols.kotlin
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
// version 1.1.0
|
||||
|
||||
val weights = listOf(1, 3, 1, 7, 3, 9, 1)
|
||||
|
||||
fun sedol7(sedol6: String): String {
|
||||
if (sedol6.length != 6) throw IllegalArgumentException("Length of argument string must be 6")
|
||||
var sum = 0
|
||||
for (i in 0..5) {
|
||||
val c = sedol6[i]
|
||||
val v = when (c) {
|
||||
in '0'..'9' -> c.toInt() - 48
|
||||
in 'A'..'Z' -> c.toInt() - 55
|
||||
else -> throw IllegalArgumentException("Argument string contains an invalid character")
|
||||
}
|
||||
sum += v * weights[i]
|
||||
}
|
||||
val check = (10 - (sum % 10)) % 10
|
||||
return sedol6 + (check + 48).toChar()
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val sedol6s = listOf("710889", "B0YBKJ", "406566", "B0YBLH", "228276", "B0YBKL",
|
||||
"557910", "B0YBKR", "585284", "B0YBKT", "B00030")
|
||||
for (sedol6 in sedol6s) println("$sedol6 -> ${sedol7(sedol6)}")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue