aboutsummaryrefslogtreecommitdiff
path: root/challenge-153/ulrich-rieke/cpp/ch-2.cpp
diff options
context:
space:
mode:
authordrbaggy <js5@sanger.ac.uk>2022-02-23 12:01:46 +0000
committerdrbaggy <js5@sanger.ac.uk>2022-02-23 12:01:46 +0000
commit1f0b1bb7c4547e1a90c6a9e5e3e917896cec09f7 (patch)
tree3367cd541740d269c24d7c5fd77dcf97b335e1b8 /challenge-153/ulrich-rieke/cpp/ch-2.cpp
parent6969759d9c3f60d28741151faf35d479fe671cf0 (diff)
parentb44719f171b42ef306e7e50933125b7b1371b38d (diff)
downloadperlweeklychallenge-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.cpp34
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 ;
+}