mirror of
https://github.com/cubixle/codekata-golang.git
synced 2026-04-30 12:48:41 +01:00
36: double-base palindromes
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
sum := 0
|
||||
for i := 0; i < 1e6; i++ {
|
||||
if isPalindromeDecimal(i) && isPalindromeString(convertToBinary(i)) {
|
||||
sum += i
|
||||
}
|
||||
}
|
||||
fmt.Println("sum:", sum)
|
||||
}
|
||||
|
||||
func isPalindromeDecimal(n int) bool {
|
||||
return isPalindromeString(strconv.Itoa(n))
|
||||
}
|
||||
|
||||
func convertToBinary(num int) string {
|
||||
s := ""
|
||||
if num == 0 {
|
||||
return "0"
|
||||
}
|
||||
for ; num > 0; num /= 2 {
|
||||
lsb := num % 2
|
||||
s = strconv.Itoa(lsb) + s
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func isPalindromeString(s string) bool {
|
||||
pb := strings.Builder{}
|
||||
for i := len(s); i > 0; i-- {
|
||||
pb.WriteString(s[i-1 : i])
|
||||
}
|
||||
pstr := pb.String()
|
||||
return s == pstr
|
||||
}
|
||||
Reference in New Issue
Block a user