blob: 4551c7edcab608a9a4584727a0cdb85bcada5c39 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
#include <iostream>
#include <string>
#include <algorithm>
#include <cstdlib>
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 ;
}
|