From 0ec9f47ce215f04a3ab046ef8ee34b7b1ee79f36 Mon Sep 17 00:00:00 2001 From: Laxmi-Verma-21 Date: Thu, 4 Dec 2025 21:33:26 +0530 Subject: [PATCH] [FEATURE] Add palindrome number checker (#3046) --- math/palindrome_number.cpp | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 math/palindrome_number.cpp diff --git a/math/palindrome_number.cpp b/math/palindrome_number.cpp new file mode 100644 index 0000000000..5d23e3dd2c --- /dev/null +++ b/math/palindrome_number.cpp @@ -0,0 +1,48 @@ +/** + * @file + * @brief Check whether a number is a palindrome. + */ + +#include +#include + +/** + * @brief Checks if a number is a palindrome. + * @param n Number to check + * @return true if palindrome, false otherwise + */ +bool is_palindrome(int n) { + if (n < 0) { + return false; // negative numbers are not palindromes + } + int original = n; + int reversed = 0; + + while (n > 0) { + reversed = reversed * 10 + (n % 10); + n /= 10; + } + + return original == reversed; +} + +/** + * @brief Self-test implementations + */ +static void tests() { + assert(is_palindrome(121) == true); + assert(is_palindrome(123) == false); + assert(is_palindrome(0) == true); + assert(is_palindrome(7) == true); + assert(is_palindrome(-121) == false); + + std::cout << "All tests passed!\n"; +} + +/** + * @brief Main function + */ +int main() { + tests(); + return 0; +}