楼梯有 NN阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 输入输出样例 输入#1复制 4 输出#1复制 5 说明/提示 对于60\%60% 的数据,N \leq 50N≤50; 对于100\%100% 的数据,1 \le N \leq 50001≤N≤5000
简介:这是一个使用动态规划解决的“数楼梯”问题。给定楼梯数`N`,求不同上楼方式的数量。程序通过递归函数`f()`计算,其中`f(x) = f(x - 1) + f(x - 2)`,初始条件`f(1) = 1`,`f(2) = 2`。考虑到数据规模可能很大,使用了高精度加法运算。样例输入`4`,输出`5`。代码中定义了一个存储中间结...
根据加法原理,得到递推公式:f[i] = f[i-1] + f[i-2] 由于楼梯数最大5000,斐波那契数列的复杂度类似于指数级,可以预估5000级楼梯的大致方案数:25000≈(210)500≈(103)500≈101500 数据长度在1500,需要使用高精度计算,通过二维数组可以很好的解决数据存储问题,每一行对应斐波那契数列的一个数。 100分代码: #...
楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 【输入】 一个数字,楼梯数。 【输出】 输出走的方式总数。 【输入样例】 4 【输出样例】 5 【代码详解】 #include <bits/stdc++.h> using namespace std; int n, a[5005] = {1}, b[5005] = {1},...
一个数字,楼梯数。 输出格式 输出走的方式总数。 输入输出样例 输入 4 输出 5 对于60%60%的数据,N≤50; 对于100%100%的数据,1≤N≤5000。 时间限制1.00s 内存限制128.00MB 思路: 斐波那契数列的第50位是20365011074(11位数) long long的数据范围是-2147483648 到 2147483647(10位数) ...
数楼梯 - 洛谷www.luogu.com.cn/problem/P1255 思路 递归直接栈溢出。发现是斐波那契数列,那就使用菲波那切数列的非递归形式,但是还得使用高精度,不然数太大了。 C++代码 #include<stack>#include<iostream>#include<string>#define maxsize 1500usingnamespacestd;typedefstructHeight{intdata[maxsize]={0};...
P1255 数楼梯题目传送门 一、递推+高精度 #include <bits/stdc++.h> using namespace std; const int N = 5010; /** * 功能:高精度加法模板 * @param A * @param B * @return */ vector<int> add(vector<int> &A, vector<int> &B) { if (A.size() < B.size()) return add(B, A)...
P1255 数楼梯 一、递推+高精度 #include <bits/stdc++.h> using namespace std; const int N = 5010; /** * 功能:高精度加法模板 * @param A * @param B * @return */ vector<int> add(vector<int> &A, vector<int> &B) { if (A.size() < B.size()) return add(B, A);...
luoguP1255 数楼梯 x P1255 数楼梯 题目描述 楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入输出格式 输入格式: 一个数字,楼梯数。 输出格式: 走的方式几种。 输入输出样例 输入样例#1: 4 1....
一个数字,楼梯数。 输出格式 走的方式几种。 输入样例 4 输出样例 5 说明/提示 60% N<=50 100% N<=5000) 思路与解法 根据题意会发现,到每阶楼梯的走法数量和斐波那契数列很相像,都是f[i] = f[i-2]+f[i-1],但基准情况有点不同,先总结出该题公式 于是完全按公式写出一个解法 代码语言:javascri...