aboutsummaryrefslogtreecommitdiff
path: root/challenge-114/ulrich-rieke/cpp/ch-2.cpp
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-05-25 21:18:39 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-05-25 21:18:39 +0100
commit5ea37ecb6cdebf9514cb102455e31beeebcafc69 (patch)
tree2dcd4b20f2e862fbff99363e11652ad294313efb /challenge-114/ulrich-rieke/cpp/ch-2.cpp
parent78531dc06c2e9463612af886c7920905868c42cd (diff)
downloadperlweeklychallenge-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/ch-2.cpp')
-rw-r--r--challenge-114/ulrich-rieke/cpp/ch-2.cpp28
1 files changed, 28 insertions, 0 deletions
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 ;
+}