diff options
| author | drbaggy <js5@sanger.ac.uk> | 2022-02-23 12:01:46 +0000 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2022-02-23 12:01:46 +0000 |
| commit | 1f0b1bb7c4547e1a90c6a9e5e3e917896cec09f7 (patch) | |
| tree | 3367cd541740d269c24d7c5fd77dcf97b335e1b8 /challenge-153/ulrich-rieke/cpp/ch-2.cpp | |
| parent | 6969759d9c3f60d28741151faf35d479fe671cf0 (diff) | |
| parent | b44719f171b42ef306e7e50933125b7b1371b38d (diff) | |
| download | perlweeklychallenge-club-1f0b1bb7c4547e1a90c6a9e5e3e917896cec09f7.tar.gz perlweeklychallenge-club-1f0b1bb7c4547e1a90c6a9e5e3e917896cec09f7.tar.bz2 perlweeklychallenge-club-1f0b1bb7c4547e1a90c6a9e5e3e917896cec09f7.zip | |
vi ch-2Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-153/ulrich-rieke/cpp/ch-2.cpp')
| -rw-r--r-- | challenge-153/ulrich-rieke/cpp/ch-2.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-153/ulrich-rieke/cpp/ch-2.cpp b/challenge-153/ulrich-rieke/cpp/ch-2.cpp new file mode 100644 index 0000000000..51fd65fda0 --- /dev/null +++ b/challenge-153/ulrich-rieke/cpp/ch-2.cpp @@ -0,0 +1,34 @@ +#include <iostream> +#include <cstdlib> +#include <vector> +#include <algorithm> +#include <numeric> + +int factorial( int num ) { + if ( num == 0 ) { + return 1 ; + } + else { + int fac = 1 ; + for ( int i = 1 ; i < num + 1 ; i++ ) + fac *= i ; + return fac ; + } +} + +int main( int argc, char* argv[] ) { + int n = std::atoi( argv[1] ) ; + int c = n ; //we are "destroying" n in the next lines + std::vector<int> digits ; + while ( n != 0 ) { + digits.push_back( n % 10 ) ; + n /= 10 ; + } + std::transform( digits.begin( ) , digits.end( ) , digits.begin( ) , + factorial ) ; + if ( std::accumulate( digits.begin( ) , digits.end( ) , 0 ) == c ) + std::cout << 1 << std::endl ; + else + std::cout << 0 << std::endl ; + return 0 ; +} |
