发布时间:2022-08-19 11:58
题目来源于牛客网——斐波那契数列_牛客题霸_牛客网 (nowcoder.com)
示例1
输入:
4复制返回值:
3复制说明:
根据斐波那契数列的定义可知,fib(1)=1,fib(2)=1,fib(3)=fib(3-1)+fib(3-2)=2,fib(4)=fib(4-1)+fib(4-2)=3,所以答案为3。示例2
输入:
1复制返回值:
1复制
示例3
输入:
2复制返回值:
1复制
由题目可知:数列的第一项和第二项都是1,且我们要求出后面的项就要知道其前两项之和
/**
*
* @param n int整型
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int Fibonacci(int n ) {
// write code here
int a = 1;
int b = 1;
int c = 0; //定义临时变量来存储前两项之和
if(n <= 2)
{
return 1;
}
while(n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
这题也可以用递归的方法实现,但是完全没有必要,虽然不用创建临时变量,但是时间的消耗是上面那种方法的50倍
递归的方法如下:
/**
*
* @param n int整型
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int Fibonacci(int n ) {
// write code here
if(n <= 2)
{
return 1;
}
else
{
return Fibonacci(n - 1) + Fibonacci(n- 2);
}
}
(连载)Android系统源码分析--Android系统启动流程之Linux内核
Lab: File path traversal, traversal sequences blocked with absolute path bypass:文件路径检索,使用绝对路径绕过语句阻塞
ruby on rails 的使用过程中,遇到的错误及解决办法
C语言程序设计(朱陈)-第10章 结构、联合、枚举 书籍学习
白帽黑客与网络安全工程师教你Kali Linux:使用Metasploit进行SSH服务扫描
【YOLOV5-6.x中文注释版】整体项目代码全中文注释导航页面-By2022
从华为云到米家APP,智能家居行业如何突破发展?智能家居未来发展方向(下)
python sklearn 画出决策树并保存为PDF的实现过程