杭电oj 2041 超级楼梯 C语言

这是一个经典的动态规划问题,可以使用动态规划的方法求解。

设arr[i]表示走上第i级楼梯的不同走法数量。则对于第i级楼梯,可以从第i-1级楼梯跨1步走上来,也可以从第i-2级楼梯跨2步走上来。因此,走上第i级楼梯的走法数量等于走上第i-1级楼梯和第i-2级楼梯的走法数量之和。

cs 复制代码
#include<stdio.h>
#include<stdlib.h>

void main()
{
	int n, m, i,j,*arr;
	while (~scanf_s("%d", &n))
	{
		for (i = 0; i < n; i++)
		{
			scanf_s("%d", &m);
			arr = (int*)malloc(m * sizeof(int));
			for (j = 0; j < m; j++)
			{
				if (j < 3)arr[j] = j;
				else arr[j] = arr[j - 1] + arr[j - 2];
			}
			printf("%d\n", arr[j-1]);
		}
	}
}
相关推荐
紫丁香2 分钟前
pytest_自动化测试1
开发语言·python·功能测试·单元测试·pytest
2301_818419014 分钟前
C++中的状态模式实战
开发语言·c++·算法
独隅11 分钟前
Python 标准库 (Standard Library) 全面使用指南
android·开发语言·python
yuzhuanhei18 分钟前
C++进阶(上)
开发语言·c++
程序员老乔21 分钟前
Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战(三):虚拟线程2.0,电商秒杀场景下的并发革命
java·开发语言·spring boot
weixin_4041576823 分钟前
Java高级面试与工程实践问题集(四)
java·开发语言·面试
xyq202427 分钟前
CSS 链接(Link)详解
开发语言
无限进步_35 分钟前
【C++】单词反转算法详解:原地操作与边界处理
java·开发语言·c++·git·算法·github·visual studio
senijusene38 分钟前
通信概念,51UART的使用,以及MODBUS的简单应用
c语言·开发语言·单片机·51单片机
王璐WL1 小时前
【C++】string类基础知识
开发语言·c++