From 3984ac2065eba1bfebb96e7395b267948d1caf9e Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Sat, 28 Sep 2024 10:08:08 +0100 Subject: - Added solutions by Ulrich Rieke. --- challenge-288/ulrich-rieke/cpp/ch-1.cpp | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 challenge-288/ulrich-rieke/cpp/ch-1.cpp (limited to 'challenge-288/ulrich-rieke/cpp/ch-1.cpp') diff --git a/challenge-288/ulrich-rieke/cpp/ch-1.cpp b/challenge-288/ulrich-rieke/cpp/ch-1.cpp new file mode 100755 index 0000000000..4551c7edca --- /dev/null +++ b/challenge-288/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,37 @@ +#include +#include +#include +#include + +bool isPalindrome( int number ) { + auto numberstring = std::to_string( number ) ; + auto reversed { numberstring } ; + std::reverse( reversed.begin( ) , reversed.end( ) ) ; + return reversed == numberstring ; +} + +int main( ) { + std::cout << "Please enter a number!\n" ; + int number ; + std::cin >> number ; + int current = number - 1 ; + while ( ! isPalindrome( current ) ) + current-- ; + auto minusnum = current ; + auto minusdiff = std::abs( minusnum - number ) ; + current = number + 1 ; + while ( ! isPalindrome( current ) ) + current++ ; + auto plusnum = current ; + auto plusdiff = std::abs( plusnum - number ) ; + if ( plusdiff == minusdiff ) + std::cout << minusnum << '\n' ; + else { + if ( plusdiff < minusdiff ) + std::cout << plusnum << '\n' ; + else + std::cout << minusnum << '\n' ; + } + return 0 ; +} + -- cgit