From 727096b8e640f5d13e14f741df3995ad681ce613 Mon Sep 17 00:00:00 2001 From: Jeffrey Hsu Date: Fri, 5 Dec 2025 21:18:40 +0800 Subject: [PATCH] 509 --- include/solution/509.h | 14 ++++++++++++++ src/509.c | 14 ++++++++++++++ tests/test_509.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 include/solution/509.h create mode 100644 src/509.c create mode 100644 tests/test_509.cpp diff --git a/include/solution/509.h b/include/solution/509.h new file mode 100644 index 0000000..eed10ea --- /dev/null +++ b/include/solution/509.h @@ -0,0 +1,14 @@ +// This file is generated by mkfile.py +// Date: 2025-12-05 + +#ifndef INC_509_H +#define INC_509_H +#ifdef __cplusplus +extern "C" +{ +#endif + int fib(int n); +#ifdef __cplusplus +} +#endif +#endif // INC_509_H diff --git a/src/509.c b/src/509.c new file mode 100644 index 0000000..3d9e9d0 --- /dev/null +++ b/src/509.c @@ -0,0 +1,14 @@ +// This file is generated by mkfile.py +// Date: 2025-12-05 + +#include +int fib(int n) +{ + int dp[n + 1]; + dp[0] = 0; + if (n >= 1) + dp[1] = 1; + for (int i = 2; i <= n; i++) + dp[i] = dp[i - 1] + dp[i - 2]; + return dp[n]; +} \ No newline at end of file diff --git a/tests/test_509.cpp b/tests/test_509.cpp new file mode 100644 index 0000000..95a49ac --- /dev/null +++ b/tests/test_509.cpp @@ -0,0 +1,39 @@ +// This file is generated by mkfile.py +// Date: 2025-12-05 + +#include +#include +// Tests for fib (LeetCode 509) +class FibTest : public ::testing::Test +{ + protected: + void AssertFib(int n, int expected) + { + ASSERT_EQ(fib(n), expected); + } +}; + +TEST_F(FibTest, Zero) +{ + AssertFib(0, 0); +} + +TEST_F(FibTest, One) +{ + AssertFib(1, 1); +} + +TEST_F(FibTest, Two) +{ + AssertFib(2, 1); +} + +TEST_F(FibTest, Ten) +{ + AssertFib(10, 55); +} + +TEST_F(FibTest, Twenty) +{ + AssertFib(20, 6765); +}