当前位置: 首页 > news >正文

算法1-4 数楼梯

题目描述

楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。

编一个程序,计算共有多少种不同的走法。

输入格式

一个数字,楼梯数。

输出格式

输出走的方式总数。

输入输出样例

输入 #1

4

输出 #1

5

说明/提示

  • 对于 60% 的数据,N≤50;
  • 对于 100% 的数据,1≤N≤5000。走法数量过大,int、long long都装不下,要使用高精度

阶数  走法  构造斐波那契数列:从第三项开始,每一项等于前两项之和
0         1   a
1         1   b     a
2         2   c     b     a
3         3          c     b
4         5                 c

暴力写法:

#include<iostream>
using namespace std;

int n; 
int a, b, c; 

int main() 
{
	cin>>n;
	
	a = 1, b = 1;
	for(int i=2; i<=n; i++)
	{
		c = a + b;
		a = b;  //更新数据 
		b = c;
	}
	
	cout<<c; 
	
	return 0;
}

高精度:

#include<iostream>
using namespace std;

int n; 
int a[5010]={0, 1}, b[5010]={0, 1}; 
int c[5010]={0, 1}; //存储结果 阶数是1输出1 
int len = 1;

void f()
{
	int d = 0;
	for(int i=1; i<=len; i++)
	{
		c[i] = a[i] + b[i] + d;
		d = c[i]/10;
		c[i] %= 10;
	} 
	if(d>0)  
    {
    	len++;
    	c[len]=d;
	}
	
	//更新数据 
	for(int i=1; i<=len; i++)
	{
		a[i] = b[i];
		b[i] = c[i];
	}
}

int main() 
{
	cin>>n;
	
	for(int i=2; i<=n; i++)  //从第二阶开始 
	{
		f();
	}
	
	for(int i=len; i>=1; i--)  //逆序输出c中的数 
	{
		cout<<c[i];
	}
	
	return 0;
}

相关文章:

  • 007 HBuilderX提示IDE service port disabled. To use CLI Call, open IDE
  • 程序代码篇---Python参数管理
  • Spring统一功能处理:拦截器、响应与异常的统一管理
  • PT8023W 单触控双输出 LED 调光 IC
  • 交友项目-交友软件简介
  • 将maya模型物体材质转化为面材质
  • SHELL32!Shell_MergeMenus函数分析
  • Plant Simulation培训教程-双深堆垛机立库仿真模块
  • AI赋能编程:PyCharm与DeepSeek的智能开发革命
  • 如何将Python函数打包成.so库?
  • 制定产品宽高比相关标准的考量维度
  • Openai Dashboard可视化微调大语言模型
  • 代码随想录算法【Day52】
  • SWAT| 水文 | SWAT模型(四):气象数据库制备(附Python代码)
  • 【Pandas】pandas Series sample
  • LeeCode题库第二十八题
  • 使用Open WebUI下载的模型文件(Model)默认存放在哪里?
  • Python strip() 方法详解:用途、应用场景及示例解析(中英双语)
  • react(9)-redux
  • Java四大框架深度剖析:MyBatis、Spring、SpringMVC与SpringBoot
  • 最高法:政府信息公开案件审理应避免泄露国家秘密、商业秘密
  • 专家:新冠病毒流行高峰无明显季节性特征,与人群抗体水平有关
  • 西安集中整治监督教育领域不正之风和腐败问题,举报方式公布
  • 专访《风雪夜归人》导演闫锐:在舞台上表现什么是真正的活着
  • 林园:茅台一直是稀缺资源,股东比较有信仰,依旧看好白酒市场
  • 第十届青春文学奖揭晓,梁晓声获特别奖