Website Summary Files Commits Branches @commit @diff @stats
path: root / Week10 / Exercise06.cpp
diff options
context:
space:
mode:
Commit5ce214686e668bf185222b518b78d7f47a20b4fd (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-12-07 13:44:16 +0200
Committer
 Syndamia <kamen@syndamia.com>
2025-12-07 13:44:16 +0200
Filesacd2c1e0f3f0c7aa850878a12a9b674b8be1ccf7 /Week10/Exercise06.cpp
upp-2025-solutions-5ce214686e668bf185222b518b78d7f47a20b4fd.tar
upp-2025-solutions-5ce214686e668bf185222b518b78d7f47a20b4fd.tar.gz
upp-2025-solutions-5ce214686e668bf185222b518b78d7f47a20b4fd.zip
Parent6f894be622e8046f43a70e843cff7bd99c58a3c1 (diff)
feat(Week10): Add solutions
1 files changed, 45 insertions, 0 deletions
-rw-r--r--Week10/Exercise06.cpp45
diff --git a/Week10/Exercise06.cpp b/Week10/Exercise06.cpp
new file mode 100644
index 0000000..fdd62a7
--- /dev/null
+++ b/Week10/Exercise06.cpp
@@ -0,0 +1,45 @@
+#include <iostream>
+
+int main() {
+ unsigned int allocated = 4, elements = 0;
+ int* numbers = new int[allocated];
+
+ int temp;
+ std::cin >> temp;
+ while (temp != 0) {
+ numbers[elements++] = temp;
+ std::cin >> temp;
+
+ /* Реоразмеряваме, ако не ни стига мястото
+ */
+ if (elements >= allocated) {
+ allocated *= 2;
+ int* moreNumbers = new int[allocated];
+
+ for (unsigned int i = 0; i < elements; i++)
+ moreNumbers[i] = numbers[i];
+
+ delete[] numbers;
+ numbers = moreNumbers;
+ }
+ }
+
+ if (elements == 1) {
+ std::cout << numbers[0] << std::endl;
+ }
+ else if (elements > 1) {
+ /* Нарочно използвам int, за да е по-разбираемо кои индекси ползваме,
+ * иначе този тип е грешен, понеже elements е unsigned int
+ */
+ for (int i = elements - 2; i >= 0; i--)
+ numbers[i] += numbers[i + 1];
+
+ for (unsigned int i = 0; i < elements; i++)
+ std::cout << numbers[i] << ' ';
+ std::cout << std::endl;
+ }
+
+ delete[] numbers;
+
+ return 0;
+}