aboutsummaryrefslogtreecommitdiff
path: root/challenge-160/deadmarshal/cpp
diff options
context:
space:
mode:
authorPaulo Custodio <pauloscustodio@gmail.com>2022-04-13 15:45:00 +0100
committerGitHub <noreply@github.com>2022-04-13 15:45:00 +0100
commit52723f74a6fc8680e19ea79ddd01bae1d9e47829 (patch)
tree9bde73f6bd6e38f0e6bbfb0f6854e09076ef52aa /challenge-160/deadmarshal/cpp
parent1f611de5f4a63b384e9721f184fc770acf7797a8 (diff)
parentaad6c403c706dc507f36e573894874ffb0301503 (diff)
downloadperlweeklychallenge-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.cpp32
-rw-r--r--challenge-160/deadmarshal/cpp/ch-2.cpp34
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;
+}