From 4eb78cdfdfa99afc07bc892a78d30c943a51df5f Mon Sep 17 00:00:00 2001 From: iliya <iliya.saroukha@hes-so.ch> Date: Fri, 13 Oct 2023 15:14:48 +0200 Subject: [PATCH] feat: ex3 serie2 finished --- serie2/ex3/.gitignore | 1 + serie2/ex3/ContainerHelper.java | 56 +++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 serie2/ex3/.gitignore create mode 100644 serie2/ex3/ContainerHelper.java diff --git a/serie2/ex3/.gitignore b/serie2/ex3/.gitignore new file mode 100644 index 0000000..6b468b6 --- /dev/null +++ b/serie2/ex3/.gitignore @@ -0,0 +1 @@ +*.class diff --git a/serie2/ex3/ContainerHelper.java b/serie2/ex3/ContainerHelper.java new file mode 100644 index 0000000..143a64a --- /dev/null +++ b/serie2/ex3/ContainerHelper.java @@ -0,0 +1,56 @@ +public class ContainerHelper { + + public static void ensurePositiveValue(int val) { + if (val < 0) { + throw new RuntimeException("Value should be greater than or equal to zero\tCurrent value: " + val); + } + } + + public static void ensurePositiveValue(int... vals) { + for (int i : vals) { + ensurePositiveValue(i); + } + } + + public static int[] transfer(int srcQuantity, int dest, int... dests) { + ensurePositiveValue(srcQuantity); + ensurePositiveValue(dest); + ensurePositiveValue(dests); + + int[] res = new int[dests.length + 1]; + + int quantityToTransferDest = Math.min(srcQuantity, dest); + res[0] = quantityToTransferDest; + srcQuantity -= quantityToTransferDest; + + for (int i = 1; i < res.length; i++) { + if (srcQuantity > 0) { + int quantityToTransferDests = Math.min(srcQuantity, dests[i - 1]); + res[i] = quantityToTransferDests; + srcQuantity -= quantityToTransferDests; + } + } + + return res; + } + + public static void main(String[] args) { + int src = 100; + int dest = 10; + int arg1 = 40; + int arg2 = 30; + int arg3 = 50; + + int res[] = transfer(src, dest, arg1, arg2, arg3); + + System.out.print("{"); + for (int i = 0; i < res.length; i++) { + System.out.print(res[i]); + if (i < res.length - 1) { + System.out.print(", "); + } else { + System.out.println("}"); + } + } + } +} -- GitLab