diff --git a/include/solution/2829.h b/include/solution/2829.h new file mode 100644 index 0000000..4c052a6 --- /dev/null +++ b/include/solution/2829.h @@ -0,0 +1,15 @@ +// +// Created by xfj12 on 2025/3/26. +// + +#ifndef INC_2829_H +#define INC_2829_H +#ifdef __cplusplus +extern "C" +{ +#endif + int minimumSum(int n, int k); +#ifdef __cplusplus +} +#endif +#endif // INC_2829_H diff --git a/src/2829.c b/src/2829.c new file mode 100644 index 0000000..59d5857 --- /dev/null +++ b/src/2829.c @@ -0,0 +1,31 @@ +// +// Created by xfj12 on 2025/3/26. +// +#include +#include +#include + +int minimumSum(int n, int k) +{ + int *KAvoid = malloc(sizeof(int) * n); + int idx = 1; + KAvoid[0] = 1; + + int sum = 0; + + for (int i = 2; idx < n; i++) + { + bool flag = true; + for (int j = 0; j < idx && flag; j++) + if (KAvoid[j] + i == k) + flag = false; + if (flag) + KAvoid[idx++] = i; + } + + for (int i = 0; i < n; i++) + sum += KAvoid[i]; + + free(KAvoid); + return sum; +} diff --git a/tests/test_2829.cpp b/tests/test_2829.cpp new file mode 100644 index 0000000..7283edf --- /dev/null +++ b/tests/test_2829.cpp @@ -0,0 +1,16 @@ +#include +#include + +TEST(MinimumSumTest, Test1) +{ + int n = 5, k = 4; + int expected = 18; + EXPECT_EQ(minimumSum(n, k), expected); +} + +TEST(MinimumSumTest, Test2) +{ + int n = 2, k = 6; + int expected = 3; + EXPECT_EQ(minimumSum(n, k), expected); +} \ No newline at end of file