辣条走起,每个月的刷题99元奖励靠大家了
前言
2018.11.27号打卡今天的题目牛客网跳台阶
昨天的题解
题目
每天一道剑指offer-牛客网斐波那契数列
题目详述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
题目详解
思路
f(n) = f(n-1) + f(n-2),第一眼看就是递归啊,简直完美的递归环境,递归肯定很爽,这样想着关键代码两三行就搞定了,注意这题的n是从0开始的:
非递归的方法,就是剑指offer思路,每次使用两个变量a,b来计算下一个数的值sum,然后a,b,sum分别是斐波那契数列中的三个数,那么就令a=b,b=sum,这样a和b就往下移动了一个位置,再计算sum就是滴4个数了,重复这个过程即可。
代码
1public class Solution {
2 public int Fibonacci(int n) {
3 int a = 0;
4 int b = 1;
5 if(n == 0)
6 return 0;
7 if(n == 1)
8 return 1;
9 int i = 2;
10 int sum=0;
11 while(i <= n)
12 {
13 sum = a + b;
14 a = b;
15 b = sum;
16 i++;
17 }
18 return sum;
19 }
20}
代码讲解
3-8行就是初始值n的个数为0或者1,直接返回当前结果
11-17行就是计算斐波那契数列的下一个数,其中i用来统计计算出了几个数,循环终止条件。
结束语
2018.11.27号打卡
作者乔戈里亲历2019秋招,哈工大计算机本硕,百度java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。