diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-05-25 21:18:39 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-05-25 21:18:39 +0100 |
| commit | 5ea37ecb6cdebf9514cb102455e31beeebcafc69 (patch) | |
| tree | 2dcd4b20f2e862fbff99363e11652ad294313efb /challenge-114/ulrich-rieke/cpp | |
| parent | 78531dc06c2e9463612af886c7920905868c42cd (diff) | |
| download | perlweeklychallenge-club-5ea37ecb6cdebf9514cb102455e31beeebcafc69.tar.gz perlweeklychallenge-club-5ea37ecb6cdebf9514cb102455e31beeebcafc69.tar.bz2 perlweeklychallenge-club-5ea37ecb6cdebf9514cb102455e31beeebcafc69.zip | |
- Added solutions by Ulrich Rieke.
Diffstat (limited to 'challenge-114/ulrich-rieke/cpp')
| -rw-r--r-- | challenge-114/ulrich-rieke/cpp/ch-1.cpp | 20 | ||||
| -rw-r--r-- | challenge-114/ulrich-rieke/cpp/ch-2.cpp | 28 |
2 files changed, 48 insertions, 0 deletions
diff --git a/challenge-114/ulrich-rieke/cpp/ch-1.cpp b/challenge-114/ulrich-rieke/cpp/ch-1.cpp new file mode 100644 index 0000000000..d89203bd3d --- /dev/null +++ b/challenge-114/ulrich-rieke/cpp/ch-1.cpp @@ -0,0 +1,20 @@ +#include <string> +#include <iostream> +#include <algorithm> +#include <cstdlib> + +bool isPalindromeNumber( int n ) { + std::string numberstring( std::to_string( n ) ) ; + std::string comparison( numberstring ) ; + std::reverse( comparison.begin( ) , comparison.end( ) ) ; + return numberstring == comparison ; +} + +int main( int argc , char * argv[] ) { + int n = std::atoi( argv[ 1 ] ) ; + n++ ; + while ( ! isPalindromeNumber( n ) ) + n++ ; + std::cout << n << std::endl ; + return 0 ; +} diff --git a/challenge-114/ulrich-rieke/cpp/ch-2.cpp b/challenge-114/ulrich-rieke/cpp/ch-2.cpp new file mode 100644 index 0000000000..6f0b4fcb4d --- /dev/null +++ b/challenge-114/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,28 @@ +#include <string> +#include <iostream> +#include <cstdlib> +#include <algorithm> + +std::string toBinaryString( int n ) { + std::string binaryString ; + while ( n != 0 ) { + int i = n % 2 ; + binaryString.append( std::to_string( i )) ; + n /= 2 ; + } + reverse( binaryString.begin( ) , binaryString.end( ) ) ; + return binaryString ; +} + +int main( int argc , char * argv[] ) { + int n = std::atoi( argv[ 1 ] ) ; + std::string numberstring( toBinaryString( n ) ) ; + int ones = std::count( numberstring.begin( ) , numberstring.end( ) , '1' ) ; + numberstring = toBinaryString( ++n ) ; + while ( std::count( numberstring.begin( ) , numberstring.end( ) , '1' ) != ones ) { + n++ ; + numberstring = toBinaryString( n ) ; + } + std::cout << n << std::endl ; + return 0 ; +} |
