Learning golang, proect euler problem 5. I was messing around with a recursive function and I could not figure out a way to get the return value to be correct.
In go I cannot take out the return at the end of the five()
function and I also cannot get it to return the right value to execute the if statement in the main()
function...
I realize I can do this without the recursion but I would like to know how to do it with recursion if possible.
package main
import (
"fmt"
//"os"
)
func recursive(num int, div int) int {
if div == 1 {
fmt.Println(num)
return num
}
switch num % div {
case 0:
recursive(num, div-1)
default:
return -1
}
return num
}
func main() {
for i := 20; ; i += 20 {
if recursive(i, 19) == 1 {
fmt.Println("finished")
}
}
}
Oh, and besides the comments above, it should also break once the answer is found.
package main
import (
"fmt"
//"os"
)
func recursive(num int, div int) int {
if div == 1 {
return 1
}
switch num % div {
case 0:
return recursive(num, div-1)
default:
return -1
}
return num
}
func main() {
for i := 120; ; i += 20 {
if recursive(i, 19) == 1 {
fmt.Printf ("finished with %v
", i)
break;
}
}
}