专业建设网站公司排名,中国微电影 网站开发者,wordpress 软件价格,大良网站智能推广价格1 问题
一只青蛙一次可以跳上1级台阶#xff0c;也可以跳上2级台阶#xff0c;求该青蛙跳上一个n级的台阶总共有多少种跳法#xff1f; 2 分析
我们可以定位函数f(n),n为n级别的台阶#xff0c;f(n)的值是青蛙有多少种跳法#xff0c;我们知道当n为1的时候#xff0c;f…1 问题
一只青蛙一次可以跳上1级台阶也可以跳上2级台阶求该青蛙跳上一个n级的台阶总共有多少种跳法 2 分析
我们可以定位函数f(n),n为n级别的台阶f(n)的值是青蛙有多少种跳法我们知道当n为1的时候f(1) 1;
当n为2的时候我们知道可以先跳一级再跳一级或者直接跳2级这里就有2种跳法所以f(2) 2;
当n为3的时候我们可以这样理解青蛙先跳一级后面还有n-1级需要跳所以这里的跳法为f(n - 1);
或者青蛙先跳两级后面还有n-2级需要跳所以这里的跳法为f(n - 2); 所以我们知道当n大于2时f(n) f(n - 1) f(n - 2);
f(1) 1; (n 1)
f(2) 2; (n 2)
f(n) f(n - 1) f(n - 2); (n 2) 3 代码实现
#include stdio.hlong long fibonacciOne(unsigned int n)
{if (n 0)return 0;if (n 1)return 1;if (n 2)return 2;return fibonacciOne(n - 1) fibonacciOne(n - 2);
}long long fibonacciTwo(unsigned int n)
{if (n 0)return 0;if (n 1)return 1;if (n 2)return 2;long long first 1;long long second 2;long long sum 0;for (int i 3; i n ; i){sum first second;first second;second sum;}return sum;
}int main(void)
{long long resultOne fibonacciOne(4);long long resultTwo fibonacciTwo(4);printf(resultOne is %lld\n, resultOne);printf(resultTwo is %lld\n, resultTwo);return 0;
} 4 运行结果
resultOne is 5
resultTwo is 5