Skip to content

Commit 7835d93

Browse files
committed
fix(exercise): fib100 溢出
Signed-off-by: YdrMaster <[email protected]>
1 parent e0d18ad commit 7835d93

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

exercises/05_constexpr/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ int main(int argc, char **argv) {
1717
std::cout << "fibonacci(20) = " << FIB20 << std::endl;
1818

1919
// TODO: 观察错误信息,修改一处,使代码编译运行
20-
constexpr auto ANS_N = 100;
20+
constexpr auto ANS_N = 90;
2121
constexpr auto ANS = fibonacci(ANS_N);
2222
std::cout << "fibonacci(" << ANS_N << ") = " << ANS << std::endl;
2323

exercises/06_loop/main.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// TODO: 改正函数实现,实现正确的缓存优化斐波那契计算
44
static unsigned long long fibonacci(int i) {
55
// TODO: 为缓存设置正确的初始值
6-
static unsigned long long cache[128], cached;
6+
static unsigned long long cache[96], cached;
77
// TODO: 设置正确的循环条件
88
for (; false; ++cached) {
99
cache[cached] = cache[cached - 1] + cache[cached - 2];
@@ -19,8 +19,8 @@ int main(int argc, char **argv) {
1919
ASSERT(fibonacci(3) == 2, "fibonacci(3) should be 2");
2020
ASSERT(fibonacci(10) == 55, "fibonacci(10) should be 55");
2121

22-
auto fib100 = fibonacci(100);
23-
std::cout << "fibonacci(100) = " << fib100 << std::endl;
24-
ASSERT(fib100 == 3736710778780434371, "fibonacci(100) should be 3736710778780434371");
22+
auto fib90 = fibonacci(90);
23+
std::cout << "fibonacci(90) = " << fib90 << std::endl;
24+
ASSERT(fib90 == 2880067194370816120, "fibonacci(90) should be 2880067194370816120");
2525
return 0;
2626
}

0 commit comments

Comments
 (0)