diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-04-28 02:55:39 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2022-04-28 02:55:39 +0100 |
| commit | 7bf95509a49cadc9b91fdd092b0642f8bae210dc (patch) | |
| tree | 9a8fc753477f03e0de48b1d7ddd64a1b871594eb /challenge-162/ulrich-rieke/cpp/ch-1.cpp | |
| parent | 526a273f4ff4be2fea95c472e97d9b821524835f (diff) | |
| download | perlweeklychallenge-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.cpp | 42 |
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 ; +} |
