33 lines
719 B
Go
33 lines
719 B
Go
package main
|
|
|
|
import "fmt"
|
|
|
|
func main() {
|
|
fmt.Println("Prüfziffer:", berechnePruefziffer(21050170, 425))
|
|
fmt.Println("Prüfziffer:", berechnePruefziffer(21050170, 12345678))
|
|
}
|
|
|
|
//Achtung: Es müssen Datentypen mit 64 Bit Ganzzahl angewendet werden,
|
|
//da * 1mio gerechnet wird. In Java/C# wäre das der Typ long.
|
|
func berechnePruefziffer(blz, kontonr int64) int64 {
|
|
var pruefziffer int64 = 0.0
|
|
|
|
for blz >= 97.0 {
|
|
blz -= 97.0
|
|
}
|
|
kontonr *= 1000000.0
|
|
kontonr += 131400.0
|
|
for kontonr >= 88529281.0 {
|
|
kontonr -= 88529281.0
|
|
}
|
|
for kontonr >= 97.0 {
|
|
kontonr -= 97.0
|
|
}
|
|
pruefziffer = blz*62.0 + kontonr
|
|
for pruefziffer >= 97.0 {
|
|
pruefziffer -= 97.0
|
|
}
|
|
pruefziffer = 98.0 - pruefziffer
|
|
return pruefziffer
|
|
}
|