网站如何做微信支付宝支付宝,dz论坛识别手机网站自动跳转,免费的软件大全下载,阎良网站建设公司题干#xff1a;
描述 N级阶梯#xff0c;人可以一步走一级#xff0c;也可以一步走两级#xff0c;求人从阶梯底端走到顶端可以有多少种不同的走法。
输入 一个整数n#xff0c;代表台阶的阶数。
输出 求人从阶梯底端走到顶端可以有多少种不同的走法#xff0c;输出结…题干
描述 N级阶梯人可以一步走一级也可以一步走两级求人从阶梯底端走到顶端可以有多少种不同的走法。
输入 一个整数n代表台阶的阶数。
输出 求人从阶梯底端走到顶端可以有多少种不同的走法输出结果的格式为大整数.
输入样例 1
1
输出样例 1
1
输入样例 2
2
输出样例 2
2
输入样例 3
4
输出样例 3
5
解题报告 超级楼梯这题一般都是n40,这样在longlong范围内就可以递推出来但是这题没给数据范围只说整数n并且说了输出格式为大整数所以这题需要搞一发高精度。
AC代码
#includebits/stdc.h
#define ll long long
using namespace std;
char f[5005][10005];
int wei[50005];
int f1[1000005];
int f2[1000005];
ll n;
void add(ll x,ll y) {int p max(wei[y],wei[x]);for(int i 0; ip; i) {f[x][i] ( f[x][i] f[y][i] ) ;f[x][i1] f[x][i] / 10;f[x][i] % 10;}while(f[x][p] ! 0) {f[x][p1]f[x][p]/10;f[x][p]%10;p;}wei[x]p;
}
int main()
{ ll n;while(~scanf(%lld,n)) {memset(f,0,sizeof f);f[1][0] 1;f[2][0] 2;wei[1]wei[2]1;for(ll i 3; in; i) {add(i,i-1);add(i,i-2);}for(int i wei[n]-1; i0; i--) {printf(%1d,f[n][i]);}printf(\n);}return 0;}