How to recursively check if a number is palindrome in Go

2 Answers

0 votes
package main

import "fmt"

var inverseNumber int

func recursiveCheckPalindrome(n int) bool {
	if n == 0 {
		return false
	}

	inverseNumber = (inverseNumber * 10) + (n % 10)

	recursiveCheckPalindrome(n / 10)

	return n == inverseNumber
}

func main() {
	n := 12321

	if recursiveCheckPalindrome(n) {
		fmt.Println("Palindrome")
	} else {
		fmt.Println("NOT Palindrome")
	}
}


/*
run:

Palindrome

*/

 



answered Oct 17, 2024 by avibootz
0 votes
package main

import (
	"fmt"
	"strconv"
)

func recursivelyCheckPalindrome(n, original int) bool {
	if n == 0 {
		return strconv.Itoa(original) == reverseString(strconv.Itoa(original))
	}

	return recursivelyCheckPalindrome(n / 10, original)
}

func reverseString(s string) string {
	runes := []rune(s)

	for i, j := 0, len(runes) - 1; i < j; i, j = i + 1, j - 1 {
		runes[i], runes[j] = runes[j], runes[i]
	}

	return string(runes)
}

func main() {
	n := 12321

	if recursivelyCheckPalindrome(n, n) {
		fmt.Println("Palindrome")
	} else {
		fmt.Println("NOT Palindrome")
	}
}


/*
run:

Palindrome

*/

 



answered Oct 17, 2024 by avibootz

Related questions

...