diff options
| author | Adam Russell <ac.russell@live.com> | 2021-12-05 16:12:14 -0500 |
|---|---|---|
| committer | Adam Russell <ac.russell@live.com> | 2021-12-05 16:12:14 -0500 |
| commit | d61d35a6f11e83deba64e6a7008e0432962aacd6 (patch) | |
| tree | efad8b2ce7b817f2e919ad72bb0451a3f48e851f | |
| parent | e4bf7d4e2d361e399ac30eb1d2f24fbb0f0ad0bb (diff) | |
| download | perlweeklychallenge-club-d61d35a6f11e83deba64e6a7008e0432962aacd6.tar.gz perlweeklychallenge-club-d61d35a6f11e83deba64e6a7008e0432962aacd6.tar.bz2 perlweeklychallenge-club-d61d35a6f11e83deba64e6a7008e0432962aacd6.zip | |
Solutions and blog for Challenge 141.
| -rw-r--r-- | challenge-141/adam-russell/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-141/adam-russell/blog1.txt | 0 | ||||
| -rw-r--r-- | challenge-141/adam-russell/cxx/ch-2.cxx | 45 | ||||
| -rw-r--r-- | challenge-141/adam-russell/prolog/ch-1.p | 0 | ||||
| -rw-r--r-- | challenge-141/adam-russell/prolog/ch-2.p | 0 |
5 files changed, 40 insertions, 6 deletions
diff --git a/challenge-141/adam-russell/blog.txt b/challenge-141/adam-russell/blog.txt index e69de29bb2..f6cb97edcd 100644 --- a/challenge-141/adam-russell/blog.txt +++ b/challenge-141/adam-russell/blog.txt @@ -0,0 +1 @@ +http://www.rabbitfarm.com/cgi-bin/blosxom/2021/12/05/perl diff --git a/challenge-141/adam-russell/blog1.txt b/challenge-141/adam-russell/blog1.txt deleted file mode 100644 index e69de29bb2..0000000000 --- a/challenge-141/adam-russell/blog1.txt +++ /dev/null diff --git a/challenge-141/adam-russell/cxx/ch-2.cxx b/challenge-141/adam-russell/cxx/ch-2.cxx index 02b29df17d..e708e8c91a 100644 --- a/challenge-141/adam-russell/cxx/ch-2.cxx +++ b/challenge-141/adam-russell/cxx/ch-2.cxx @@ -1,3 +1,4 @@ +#include<cmath> #include<vector> #include<iostream> #include<algorithm> @@ -6,6 +7,7 @@ class LikeNumbers{ public: std::vector<int> like_numbers(int, int); private: + int vector2int(std::vector<int>); std::vector<int> int2digits(int); }; @@ -16,19 +18,50 @@ std::vector<int> LikeNumbers::int2digits(int i){ digits.push_back(digit); i = i / 10; }while(i != 0); - std::reverse(digits.begin(), digits.end()); return digits; } +int LikeNumbers::vector2int(std::vector<int> v){ + int x = 1; + int r = 0; + for(int i: v){ + r = r + (i * x); + x = x * 10; + } + return r; +} + std::vector<int> LikeNumbers::like_numbers(int i, int j){ std::vector<int> digits = this->int2digits(i); - for(int digit : digits) - std::cout << digit << " "; - std::cout << std::endl; - return digits; + std::vector<int> like; + int power_set_size = std::pow(2, digits.size()); + for(int k = 1; k < power_set_size - 1; k++){ + std::vector<int> included_digits; + for(int l = 0; l < digits.size(); l++){ + if( k >> l & 1) + included_digits.push_back(digits.at(l)); + } + int number = this->vector2int(included_digits); + if(number % j == 0) + like.push_back(number); + } + std::sort(like.begin(), like.end()); + return like; } int main(int argc, char** argv){ LikeNumbers ln; - ln.like_numbers(1234, 2); + std::vector<int> like; + like = ln.like_numbers(1234, 2); + std::cout << like.size() << ": "; + for(int i : like){ + std::cout << i << " "; + } + std::cout << std::endl; + like = ln.like_numbers(768, 4); + std::cout << like.size() << ": "; + for(int i : like){ + std::cout << i << " "; + } + std::cout << std::endl; } diff --git a/challenge-141/adam-russell/prolog/ch-1.p b/challenge-141/adam-russell/prolog/ch-1.p deleted file mode 100644 index e69de29bb2..0000000000 --- a/challenge-141/adam-russell/prolog/ch-1.p +++ /dev/null diff --git a/challenge-141/adam-russell/prolog/ch-2.p b/challenge-141/adam-russell/prolog/ch-2.p deleted file mode 100644 index e69de29bb2..0000000000 --- a/challenge-141/adam-russell/prolog/ch-2.p +++ /dev/null |
