aboutsummaryrefslogtreecommitdiff
path: root/challenge-162/ulrich-rieke/cpp/ch-1.cpp
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2022-04-28 02:55:39 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2022-04-28 02:55:39 +0100
commit7bf95509a49cadc9b91fdd092b0642f8bae210dc (patch)
tree9a8fc753477f03e0de48b1d7ddd64a1b871594eb /challenge-162/ulrich-rieke/cpp/ch-1.cpp
parent526a273f4ff4be2fea95c472e97d9b821524835f (diff)
downloadperlweeklychallenge-club-7bf95509a49cadc9b91fdd092b0642f8bae210dc.tar.gz
perlweeklychallenge-club-7bf95509a49cadc9b91fdd092b0642f8bae210dc.tar.bz2
perlweeklychallenge-club-7bf95509a49cadc9b91fdd092b0642f8bae210dc.zip
- Added solutions by Ulrich Rieke.
Diffstat (limited to 'challenge-162/ulrich-rieke/cpp/ch-1.cpp')
-rw-r--r--challenge-162/ulrich-rieke/cpp/ch-1.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/challenge-162/ulrich-rieke/cpp/ch-1.cpp b/challenge-162/ulrich-rieke/cpp/ch-1.cpp
new file mode 100644
index 0000000000..c4e833f850
--- /dev/null
+++ b/challenge-162/ulrich-rieke/cpp/ch-1.cpp
@@ -0,0 +1,42 @@
+#include <string>
+#include <vector>
+#include <iostream>
+
+std::vector<int> convert( std::string & numberstring ) {
+ std::vector<int> numbers ;
+ for ( int i = 0 ; i < numberstring.size( ) ; i++ ) {
+ if ( numberstring.substr( i , 1 ) != "-" ) {
+ numbers.push_back( std::stoi( numberstring.substr( i, 1) ) ) ;
+ }
+ }
+ return numbers ;
+}
+
+int main( ) {
+ std::cout << "Please enter an ISBN string with only 12 digits!\n" ;
+ std::string isbn ;
+ std::cin >> isbn ;
+ std::string converted ( isbn ) ;
+ std::vector<int> numbers { convert( converted ) } ;
+ while ( numbers.size( ) != 12 ) {
+ std::cout << "Enter an ISBN with only 12 digits, for exercise purposes!\n" ;
+ std::cin >> isbn ;
+ converted = isbn ;
+ numbers = convert( converted ) ;
+ }
+ std::cout << std::endl ;
+ std::vector<int> multipliers ;
+ for ( int i = 0 ; i < 6 ; i++ ) {
+ multipliers.push_back( 1 ) ;
+ multipliers.push_back( 3 ) ;
+ }
+ int sum = 0 ;
+ for ( int i = 0 ; i < 12 ; i++ ) {
+ sum += *(numbers.begin( ) + i ) * *(multipliers.begin( ) + i) ;
+ }
+ int check = 10 - ( sum % 10 ) ;
+ if ( check == 10 )
+ check == 0 ;
+ std::cout << "The ISBN is " << isbn << std::to_string( check ) << " !\n" ;
+ return 0 ;
+}