Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,855 questions

51,776 answers

573 users

How to recursively check if a number is palindrome in Swift

2 Answers

0 votes
import Foundation

func isPalindrome(_ num: Int, reversed: Int = 0, original: Int? = nil) -> Bool {
    // Initialize the original on the first call
    let originalNum = original ?? num

    // Base case: If the number is reduced to 0, check if the reversed matches the original
    if num == 0 {
        return reversed == originalNum
    }

    // Recursive case: Extract the last digit, update reversed, and call recursively
    let remainder = num % 10
    return isPalindrome(num / 10, reversed: reversed * 10 + remainder, original: originalNum)
}

let number = 12321
if isPalindrome(number) {
    print("\(number) is a palindrome.")
} else {
    print("\(number) is not a palindrome.")
}



/*
run:

12321 is a palindrome.

*/

 



answered Apr 8, 2025 by avibootz
0 votes
import Foundation

func recursiveCheckPalindrome(_ n: Int, inverseNumber: inout Int) -> Bool {
    // Base case: If the number is 0, stop recursion and return false (initialization).
    if n == 0 {
        return false
    }
    
    // Update the inverseNumber by adding the last digit
    inverseNumber = (inverseNumber * 10) + (n % 10)
    
    // Recursive call with the remaining digits
    _ = recursiveCheckPalindrome(n / 10, inverseNumber: &inverseNumber)
    
    // Check if the original number matches the reversed number
    return n == inverseNumber
}

var number = 12321
var inverseNumber = 0

if recursiveCheckPalindrome(number, inverseNumber: &inverseNumber) {
    print("\(number) is a palindrome.")
} else {
    print("\(number) is NOT a palindrome.")
}



/*
run:

12321 is a palindrome.

*/

 



answered Apr 9, 2025 by avibootz
...