diff options
| author | Paulo Custodio <pauloscustodio@gmail.com> | 2022-04-13 15:45:00 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-13 15:45:00 +0100 |
| commit | 52723f74a6fc8680e19ea79ddd01bae1d9e47829 (patch) | |
| tree | 9bde73f6bd6e38f0e6bbfb0f6854e09076ef52aa /challenge-160/deadmarshal/cpp | |
| parent | 1f611de5f4a63b384e9721f184fc770acf7797a8 (diff) | |
| parent | aad6c403c706dc507f36e573894874ffb0301503 (diff) | |
| download | perlweeklychallenge-club-52723f74a6fc8680e19ea79ddd01bae1d9e47829.tar.gz perlweeklychallenge-club-52723f74a6fc8680e19ea79ddd01bae1d9e47829.tar.bz2 perlweeklychallenge-club-52723f74a6fc8680e19ea79ddd01bae1d9e47829.zip | |
Merge branch 'manwar:master' into master
Diffstat (limited to 'challenge-160/deadmarshal/cpp')
| -rw-r--r-- | challenge-160/deadmarshal/cpp/ch-1.cpp | 32 | ||||
| -rw-r--r-- | challenge-160/deadmarshal/cpp/ch-2.cpp | 34 |
2 files changed, 66 insertions, 0 deletions
diff --git a/challenge-160/deadmarshal/cpp/ch-1.cpp b/challenge-160/deadmarshal/cpp/ch-1.cpp new file mode 100644 index 0000000000..4db8e75aa7 --- /dev/null +++ b/challenge-160/deadmarshal/cpp/ch-1.cpp @@ -0,0 +1,32 @@ +#include<iostream> +#include<string> +#include<map> + +std::string four_is_magic(int n) +{ + std::map<int, std::string> numbers{}; + std::string ret{}; + std::string arr[] = {"one","two","three","four","five","six","seven", + "eight","nine"}; + for(int i = 0; i < 9; ++i){ + numbers[i+1] = arr[i]; + } + size_t len = numbers[n].size(); + do{ + ret += numbers[n] + " is " + numbers[len] + ", "; + n = len; + len = numbers[n].size(); + }while(n != 4); + ret[0] = std::toupper(ret[0]); + ret += "four is magic."; + return ret; +} + +int main() +{ + std::cout << four_is_magic(5) << '\n'; + std::cout << four_is_magic(7) << '\n'; + std::cout << four_is_magic(6) << '\n'; + + return 0; +} diff --git a/challenge-160/deadmarshal/cpp/ch-2.cpp b/challenge-160/deadmarshal/cpp/ch-2.cpp new file mode 100644 index 0000000000..79ab7736f6 --- /dev/null +++ b/challenge-160/deadmarshal/cpp/ch-2.cpp @@ -0,0 +1,34 @@ +#include<iostream> +#include<vector> +#include<numeric> + +int equilibrium_index(const std::vector<int>& vec) +{ + int left = 0, right = std::accumulate(vec.begin(), vec.end(), 0); + int ret = -1; + for(std::size_t i = 0; i < vec.size(); ++i) + { + right -= vec[i]; + if(left == right) + { + ret = i; + break; + } + left += vec[i]; + } + return ret; +} + +int main() +{ + std::vector<int> vec{1,3,5,7,9}; + std::cout << equilibrium_index(vec) << '\n'; + + vec = {1,2,3,4,5}; + std::cout << equilibrium_index(vec) << '\n'; + + vec = {2,4,2}; + std::cout << equilibrium_index(vec) << '\n'; + + return 0; +} |
