【笔试】算法的暴力美学——牛客 WY22 :Fibonacci数列

张开发
2026/4/19 20:14:16 15 分钟阅读

分享文章

【笔试】算法的暴力美学——牛客 WY22 :Fibonacci数列
一、题目描述二、算法原理思路列出所有的 Fibonacci 数值依次和输入的值比较1使用一个一维数组来存储 Fibonacci 数值注意这个数组只能存储 Fibonacci 数值2使用 while 循环来计算并存储 Fibonacci 数值当这个数组的最后一个数字大于 n 时那么退出循环3此时的情况是数组的最后一个数字大于 n 倒数最后一个数字小于 n 那么我们计算的最小的 n 变成 Fibonacci 数字的步数就是计算这两个数子的差值三、代码实现#include iostream #include vector using namespace std; int main() { int n 0; std::cin n; std::vectorint ret {0,1};//存储 Fibonacci 数列 while(ret.back() n)//结束循环的 Fibonacci 数 大于 n { ret.push_back(ret[ret.size() - 1] ret[ret.size() - 2]); } if(n ret.back()) std::cout 0 std::endl; else { int mini min(ret.back() - n, n - ret[ ret.size() - 2 ]);//小的 Fiboncci 数 n 大的 Fiboncci 数ret.back() std::cout mini std::endl; } return 0; }

更多文章